基本操作
<<
左移
>>
右移
>>>
无符号右移
&
位与
|
位或
^
位异或
~
位非
通过 Java int
来举例
代码输出结果查看
左移操作
1
2
3
4
|
5 的二进制 : 0000 0000 0000 0000 0000 0000 0000 0101
左移2位的结果 的二进制 : 0000 0000 0000 0000 0000 0000 0001 0100
-5 的二进制 : 1111 1111 1111 1111 1111 1111 1111 1011
左移2位的结果 的二进制 : 1111 1111 1111 1111 1111 1111 1110 1100
|
右移操作
1
2
3
4
|
5 的二进制 : 0000 0000 0000 0000 0000 0000 0000 0101
右移2位的结果 的二进制 : 0000 0000 0000 0000 0000 0000 0000 0001
-5 的二进制 : 1111 1111 1111 1111 1111 1111 1111 1011
右移2位的结果 的二进制 : 1111 1111 1111 1111 1111 1111 1111 1110
|
无符号右移
1
2
3
4
5
|
---
5 的二进制 : 0000 0000 0000 0000 0000 0000 0000 0101
无符号右移2位的结果 的二进制 : 0000 0000 0000 0000 0000 0000 0000 0001
-5 的二进制 : 1111 1111 1111 1111 1111 1111 1111 1011
无符号右移2位的结果 的二进制 : 0011 1111 1111 1111 1111 1111 1111 1110
|
按位与
1
2
3
|
5 的二进制 : 0000 0000 0000 0000 0000 0000 0000 0101
7 的二进制 : 0000 0000 0000 0000 0000 0000 0000 0111
5 & 7 = 的二进制 : 0000 0000 0000 0000 0000 0000 0000 0101
|
按位或
1
2
3
|
5 的二进制 : 0000 0000 0000 0000 0000 0000 0000 0101
7 的二进制 : 0000 0000 0000 0000 0000 0000 0000 0111
5 | 7 = 的二进制 : 0000 0000 0000 0000 0000 0000 0000 0111
|
按位异或
1
2
3
|
5 的二进制 : 0000 0000 0000 0000 0000 0000 0000 0101
7 的二进制 : 0000 0000 0000 0000 0000 0000 0000 0111
5 ^ 7 = 的二进制 : 0000 0000 0000 0000 0000 0000 0000 0010
|
按位非
1
2
|
5 的二进制 : 0000 0000 0000 0000 0000 0000 0000 0101
~5的二进制 : 1111 1111 1111 1111 1111 1111 1111 1010
|
代码
点击链接跳转GitHub查看
需要注意的点
无符号右移无论正负数,高位都会补零。 有符号右移会根据本身的正负数来进行填充。