4

私は持っている

byte i = 30;
i <<= 3;
System.out.println(i);

これを行うと、実際に符号付きビットに1が入れられますか、それとも符号付きビットにあるものが切り捨てられ、符号付きビットが他の方法で変更されますか00011110?11110000

また、これは-16. どうしてこれなの?11110000基数 10 は に等しいと思っていましたが、 がどこから来た-112のか混乱しています。-16

4

1 に答える 1

3

バイトのビットは、右から左に 1、2、4、8、16、32、64、および -128 を表します。

これを符号ビットと呼びますが、実際には -128 を表します。

11110000ですので16 + 32 + 64 - 128 == -16

于 2016-03-25T04:24:38.757 に答える