1、与(&)运算符,有0为0
例:-5 & 4
-5的二进制形式为:11111111 11111111 11111111 11111011
4的二进制形式为:00000000 00000000 00000000 00000100
进行逻辑运算后为:00000000 00000000 00000000 00000000
2、或(|)运算符,全0为0
例:-5 | 4
-5的二进制形式为:11111111 11111111 11111111 11111011
4的二进制形式为:00000000 00000000 00000000 00000100
进行逻辑运算后为:11111111 11111111 11111111 11111111
3、非(~)运算符,取反,1变0,0变1
例: ~(-5)
-5的二进制形式为:11111111 11111111 11111111 11111011
取反后的二进制形式为:00000000 00000000 00000000 00000100
4、异或(^)运算符,相异为1
例:-5 ^ 4
-5的二进制形式为:11111111 11111111 11111111 11111011
4的二进制形式为:00000000 00000000 00000000 00000100
进行逻辑运算后为:11111111 11111111 11111111 11111111
5、右移(>>) 运算符带符号右移。正数右移高位补0,负数右移高位补1
**相当于除以2**
6、左移(<<)运算符,m<<n,把m的二进制数左移n位,高位超出n位都舍弃,低位补0
此时可能出现正数变负数
注意:在数字没有溢出的情况下,对于整数和负数,m<<n相当于m乘以2的n次方。
例:5<<2
5的二进制形式为:00000000 00000000 00000000 00000101
进行逻辑运算后为(左移两位):00000000 00000000 00000000 00010100
7、无符号右移(>>>)运算符,m>>>n,整数m表示的二进制右移n位,不论正负数,高位都补0
例1: 5>>>2
5的二进制形式为:00000000 00000000 00000000 00000101
进行逻辑运算后为(无符号右移两位):00000000 00000000 00000000 00000001
转换为十进制为:1
例2:-5>>>2
-5的二进制形式为:11111111 11111111 11111111 11111011
进行逻辑运算后卫(无符号右移两位):00111111 11111111 11111111 11111110
转换为10进制为:1073741822