| 运算(按位或)
0|0=0
0|1=1
1|0=1
1|1=1
10|12=1010|1100=1110=14
~ 运算(按位非)
~0=1
~1=0
^ 运算(按位异或)
0^0=0
0^1=1
1^0=1
1^1=0
10^12=1010|1100=0110=6
<< 左移
- 向左移动n位,右边空出用0表示;快速计算即m*2^n
2<<2=8
2<<3=16
3<<4=48
>> 右移
2>>2=0010>>2=0000=0
35>>2=0010 0011>>2=0000 1000=8
30>>>2=0001 1110>>>2=0000 1110=7
>>> 无符号右移
-1>>>1=...1111 1111>>>1=...1111 1111=2147483647
-1>>>2=...1111 1111>>>2=0..1111 1111=2147483647-1073741824=2147483647-2^30=1073741823
-7>>>1=...1111 1001>>>1=...1111 1100=(2147483647-2-1)=2147483644
负数转二进制:
-1=-(...0000 0001)=(...1111 1110)+1=...1111 1111
-7=-(...0000 0111)=(...1111 1000)+1=...1111 1001