我有
byte i = 30;
i <<= 3;
System.out.println(i);
我相信这会改变00011110
为11110000
这样做是否实际上将一个 1 放入有符号位,或者将在有符号位中的那个被切断并且有符号位以其他方式改变?
此外,这会打印出来-16
。为什么是这样?我以为11110000
以 10 为底等于-112
,我很困惑-16
来自哪里。
我有
byte i = 30;
i <<= 3;
System.out.println(i);
我相信这会改变00011110
为11110000
这样做是否实际上将一个 1 放入有符号位,或者将在有符号位中的那个被切断并且有符号位以其他方式改变?
此外,这会打印出来-16
。为什么是这样?我以为11110000
以 10 为底等于-112
,我很困惑-16
来自哪里。