java移位运算符详解 左移<< 右移>>无符号右移>>
1 左移运算符
比如2<<2左移2位
2的进制表示为
000010
左移2位
001000
转化10进制
8
相当于*2的位移次方
2右移运算符
2
0010
0010
0000
=
0
8
1000
1000
0010
2
相当于除以2的位移次方
3无符号右移与右移的区别
比如
-8 右移2位
0000 1000 8的正数表示
1111 0111 取反
1111 1000 +1,8的负数表示
1111 1110 右移, 这个2进制表示负数
1111 1101 -1
0000 0010 取反
等于-2
相当于除以 2的位移次方
-8 无符号右移2位
1111 1000
0011 1110
等于 76
注意:java short byte char 数据类型移位处理是是先转换int然后去然后取位数
0011 1111 1111 .....1111 1110
取
1111 1110
转化为
-2

浙公网安备 33010602011771号