<< 左移
2 << 1:十进制“2”转换成二进制为“00000000 00000000 00000000 00000010”,再将二进制左移一位,高位丢弃,
低位补0,所以结果为“00000000 00000000 00000000 00000100”,换算成十进制则为“4”。
>> 右移
2 >> 1:十进制“2”转换成二进制为“00000000 00000000 00000000 00000010”,再将二进制右移一位,低位丢弃,
高位补0,所以结果为“00000000 00000000 00000000 00000001”,换算成十进制则为“1”。
>>> 逻辑右移, 即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0
正数: 20 >>> 2 结果与 20 >> 2 相同;
负数: -20 >>> 2
解释: 数据类型默认为int 32位
-20 : 源码:10000000 00000000 00000000 00010100
反码:11111111 11111111 11111111 11101011
补码:11111111 11111111 11111111 11101100
右移:00111111 11111111 11111111 11111011
结果: 1073741819
java 位移
最新推荐文章于 2022-03-30 19:08:59 发布