回顾了一下& | ^ 三个运算 做个笔记记录一下
1.与运算(&)
计算规则:两个计算的二进制数 相同位为1结果为1否则为0
1 & 1 = 1;
1 & 0 = 0;
0 & 1 = 0;
0 & 0 = 0;
例如:
1 & 2
换成二进制
0000 0001 & 0000 0010
结果为
0000 0000
2 & 3
0000 0010 & 0000 0011 = 0000 0010
通过这个特性 我们通常可以用来清零 想给哪一位清零就把哪一位置为0 若不想清零这一位 这一位为1即可
0010 1100 & 0000 0000 = 0000 0000
0010 1100 & 0010 0000 = 0010 0000
从上面的第二个例子可以看出 我们还可以用这个特性 用于取出某一位 上面我们取出来的数字就是32了
2.或运算(|)
计算规则:相同位置的两个二进制数 有1结果就是1 否则为0
0 | 0 = 0;
0 | 1 = 1;
1 | 0 = 1;
1 | 1 = 1;
0010 1011 | 0101 0100 = 0111 1111
或运算的这个特性 我们经常可以用来给给定位置置为1 比如我要给最后一位和倒数第三位置为1
0000 | 0101 = 0101
3.异或运算(^)
计算规则:相同为0 相异为1
0 ^ 0 = 0;
0 ^ 1 = 1;
1 ^ 0 = 1;
1 ^ 1 = 0;