指定 A = 60(0011 1100); B = 13 (0000 1101)
这里用八位宽度存储表示二进制
按位与(&)
同时为1为1,其余为0
00111100 & 00001101 = 00001100
60 & 13= 12
按位或(|)
同为0为0,其余为1
00111100 | 00001101 = 00111101
60 | 13= 61
按位异或(^)
不同为1,相同为0
00111100 ^ 00001101 = 00110001
60 ^ 13= 49
按位同或(没有专门的运算符,对异或运算取反)
相同为1,不同为0
!(00111100 ^ 00001101) = 11001110
最高位表示符号位,1为负,0为正
!(60 ^ 13)= -78
按位取反(~)
0变为1,1变为0
~00001101 = 11110010
最高位表示符号位,1为负,0为正
~13= -114
按位左移(<<),讨论无符号范围
将操作数的所有位向左移动指定的位数
00001101 << 1 = 00011010
13 << 1 = 26
按位右移(>>),讨论无符号范围
将操作数的所有位向右移动指定的位数
00001101 >> 1 = 00000110
13 >> 1 = 6