4

Integer.toBinaryString(355) = 0000000101100011and を使用して 10 進数を 2 進数に変換することを知っていInteger.toBinaryString(-355) = 1111111010011101ます (32 ビットの結果の下位 16 ビットを取得します)。

私がやりたいのは、逆の方法で、16 ビットの 2 の補数のバイナリ文字列を取り、10 進数に変換することです。

すなわち

0000000000110010 =  50
1111111111001110 = -50

それよりも1111111111001110 = 65486

どうすればいいですか?

4

2 に答える 2

5

結果を に読み込む必要がありますshort

short res = (short)Integer.parseInt("1111111111001110", 2);
System.out.println(res);

これは印刷され-50ます。

于 2013-04-05T15:35:39.133 に答える
2

short?を使用します。それらは 16 ビットを占有します。

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

于 2013-04-05T15:35:26.977 に答える