位运算
位逻辑运算符
- 与(&)
- 或(|)
- 取反(~)
- 异或(^)
同为0,不同为1
A | B | A&B | A|B | A^B | ~A |
---|
0 | 0 | 0 | 0 | 0 | 1 |
0 | 1 | 0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 | 1 |
1 | 1 | 1 | 1 | 0 | 0 |
位移运算符
- 左移位(<<)
1 2^0
1<<1 2^1
1<<2 2^2
符号位不变代表×2 - 右移位(>>)
正数补0,负数补1 - 无符号右移位(>>>)
高位只补0
Tips
byte和short这种低精度的不适用于无符号右移位,会自动变成右移位
byte a = (byte)(-32>>>1)
short b = (short)(-128>>>4)