一、关于位运算的计算方式
按位与,两数都为1时才返回1,否则为0
例:5&6
0 1 0 1
& 0 1 1 0
------------------
0 1 0 0
按位或,两数任意为1即返回1,两数都为0才返回0
例:5|6
0 1 0 1
| 0 1 1 0
-------------------------
0 1 1 1
按位异或,两数相同为0,两数不相同为1
例:5^6
0 1 0 1
^ 0 1 1 0
-----------------------------------
0 0 1 1
按位取反,1取反为0,0取反为1
例:~5
0 1 0 1
~
------------------------------
1 0 1 0
按位左移,将二进制向左移动n位,高位丢弃,低位补零
例:5<<1
0 1 0 1
0 1 0 1 0
溢出的一位丢弃,后面不足补零
按位右移,将二进制向右移动n位,高位补1或0(负数补1,正数补0),低位丢弃
例:5 >> 1
0 1 0 1
0 0 1 0 1
溢出的一位丢弃,最高位补零(正数)
-5 >>1
1 1 0 1
1 1 1 0 1
溢出的一位丢弃,最高位补1(负数)
标签:运算,丢弃,取反,C语言,按位,溢出,补零,两数
来源: https://blog.youkuaiyun.com/qq_28518147/article/details/101058520