位操作运算
一、位操作符:
1.位与&(两个&&是逻辑与)
1&0=0 1&1=1 0&0=0 0&1=0
位与和逻辑与的区别:位与时两个操作数是按照二进制位批次对应位相与的;逻辑与是两个操作数作为整体来相与的。
2.位或|(两个||是逻辑或)
1|0=1 1|1=1 0|0=0 0|1=1
位与和逻辑或的区别:位或时两个操作数是按照二进制位批次对应位相或的;逻辑或是两个操作数作为整体来相或的。
3.位取反~(逻辑取反是!)
按位取反是将操作数的二进制位逐个按位取反(1变成0,0变成1);而逻辑取反是真(只要不是的任何数都是真)变成假(只有0表示假)、假变成真。
4.位异或^
1^1=0 0^0=0 1^0=1 0^1=1
2个数如果相等为0,不等为1。
5.左移位<<;右移位>>
c语言移位取法于数据类型。
对于无符号数,左移时右侧补0;(相当于逻辑移位)
对于无符号数,右移时左侧补0;(相当于逻辑移位)</