位运算的学习

按位与 &

参加运算的两个数,按二进制位进行“与”运算。
双目运算符,其功能让两个数的二进制位相与,只有两个位均为1 的情况,其结果才是1 ,其余情况为0
如 0 & 0= 0 ,0 & 1= 0,1 & 0= 0, 1 & 1= 1。
例:3 &5 即 00000011 & 00000101 = 00000001 ,所以 3 & 5的值为1。

按位或 |

双目运算符,其功能让两个二进制位相或 ,只有两个位均为0的情况,其结果才是0 , 其余情况为1
如 0 | 0= 0 , 1 | 0= 1 , 0 | 1= 1 , 1 | 1= 1 。
例:2 | 4 即 00000010 | 00000100 = 00000110 ,所以2 | 4的值为 6

取反 ~

单目运算符,其优先级高于双目运算符,其功能让一个数二进制位按位取反,即 1 变 0 , 0 变1
参加运算的两个数,换算为二进制(0、1)后, 0变1, 1变0。

~(010) = 101

异或 ^

参加运算的两个数,按二进制位进行“异或”运算。
运算规则:参加运算的两个数,如果两个相应位为“异”(值不同),则该位结果为1,否则为0。
如 0 ^ 0=0 , 0 ^ 1= 1 , 1 ^ 0= 1 , 1 ^ 1= 0 。
例: 2 ^ 4 即 00000010 ^ 00000100 =00000110 ,所以 2 ^ 4 的值为6

逻辑与 &&

运算符两边的表达式的值都为true运算结果为true, 其余情况为false

逻辑或 ||

运算符两边的表达式的值都为false运算结果为false, 其余情况为true

按位同或 ⊙

参加运算的两个数,换算为二进制(0、1)后,进行异或运算。只有当 相应位上的数字相同时取1, 不相同为0

猜你喜欢

转载自blog.csdn.net/weixin_45824920/article/details/114770828