位运算种类
与(&)、或(|)、非(~)、异或(^),原码,反码,补码
对与(&)、或(|)、非(~)、异或(^)的理解
什么是"位"
什么是位运算
将数按照位进行运算
定义
| 全为0结果为0,否则结果为1
& 全为1结果为1,否则结果为0
^ 相异结果才为1,相同结果为0
~ 按位取反
规律
- 任何一个数与0相与(&)结果都是0
- 0,1与0相与的结果都为0 想要将数置为零可以与0相与
例 111010011101 & 000000000000 = 0
- 0,1与1相与的结果还是0,1本身 想要数保持不变,可以用数与所有位上都为1的数相与
例 100101 & 111111 = 100101
- 0,1与0相或的结果还是0,1本身 想要数保持不变,可以用数与0相或
例 11110101011001 | 00000000000000 = 11110101011001
- 0,1与1相或的结果全部变为1 拿一个数与所有位上的数为1的数相或,结果所有位上的数全部置为1
例 11110101011001 | 1111111111111 = 11111111111111
左移(<<),右移(>>),无符号右移(>>>)
<< : 左移运算符,num << 1,相当于num乘以2
>> : 右移运算符,num >> 1,相当于num除以2
>>> : 无符号右移,忽略符号位,空位都以0补齐