与运算(&)
二元运算符;两个变量同为1时,结果为1,否则为0;
3&1=1 ====>00000011&00000001=00000001=1
4&-5=0 ====>00000100&11111011=00000000=0(负数运算时,应变为它的补码进行运算)
或运算(|)
二元运算符;二者有一个为1,则为1,同时为0,则为0;
-2|2=-2 ===> 11111110|00000010=111111110=-2
异或(^)
二元运算符;二者相同为0;相异为1
取反(~)
一元运算符;1变0,0变1;
左移(<<)
一元运算符;符号不变,向左移位;相当于*2
4<<1=8 ====>00000100->00001000=8
右移(>>)
一元运算符;符号不变,向右移;相当于/2
4>>1=2 ====>00000100->000000010=2
无符号右移(>>>)
一元运算符;高位补0,
-1>>>1=2147483647 ====>11111111 11111111 11111111 1111111
====> 01111111 11111111 11111111 1111111=2147483647