使用java里的位移运算符时右边输入负数,会怎么样

2025-03-31 03:33:08
推荐回答(3个)
回答1:

我们知道,java int 是32位,并且位运算要用补码,举个例子
那么在位移<<或者>>右边的值i要用补码,并且因为是32位的,所以右边位移i只取补码的后6位,
例如
2<<-1 因为-1的补码是 111111111111.....所以把有效的1移出32位界了,就变0了

2<<3 = 2<<67
3补码 0000....000011
67补码00000...1000011

他们都只移了三位

回答2:

负数,直接向反方向移动

回答3:

是想要、还是不要负数

>>>
是 另个右移的运算。