0

短い型変数は16ビットの符号付き整数であることを学びましたが、

    short n = -1;

    System.out.println(Integer.toBinaryString(n));

出力:

11111111111111111111111111111111

結果には32ビットが含まれます。なぜですか。

4

3 に答える 3

7

その理由はInteger、32ビット型を表し、引数をtoBinaryString()取るためです。メソッドを呼び出す前に、引数がにプロモートされintます。shortint

于 2012-07-22T01:59:41.813 に答える
2

あなたが呼び出すとき、あなたshortは暗黙のうちににキャストされます:inttoBinaryString()

public static String Integer.toBinaryString(int i)
于 2012-07-22T02:00:46.030 に答える
1

下位16ビットを印刷するには、を使用できます。

System.out.println(Integer.toBinaryString(n & 0xFFFF));

ゼロパッティング用。

System.out.println(Integer.toBinaryString(0x10000 + (n & 0xFFFF)).substring(1));
于 2012-07-22T07:59:49.753 に答える