按位与( AND) a & b
对于每一个比特位,只有两个操作数相应的比特位都是1时,结果才为1,否则为0。
例:
1101&
1001 结果1001。
按位或(OR) a | b
对于每一个比特位,当两个操作数相应的比特位至少有一个1时,结果为1,否则为0。
例:
1101&
1001 结果1101。
按位异或(XOR)a ^ b
对于每一个比特位,当两个操作数相应的比特位有且只有一个1时,结果为1,否则为0。
例:
1101&
1001 结果100。
按位非(NOT)~ a
反转操作数的比特位,即0变成1,1变成0。
例:
~
1001 结果1111111111111111111111111111111111111111111111111111111111110110。
左移位 a << b (b是移动的位数)
左移位操作符(<<)能按照操作符右侧指定的位数将操作符左边的操作数向左移动(在低位补0)
例子:0000 0000 0000 0110<<
2 结果 0000 0000 0001 1000
右移位 a >> b (b是移动的位数)
右移位操作符(>>)则按照操作符右侧指定的位数将操作符左边的操作数向右移。
例子:0000 0000 0000 0110>>
2 结果 0000 0000 0000 0001
无符号右移位 a >>> b
无符号”右移位操作符(>>>),他使用“零扩展”;无论正负,都在高位插入0。
例子:和右位移例子差不多......
注意:移位操作符的运算对象是二进制的"位",移动操作符只可用来处理整数类型。