按位与、或、异或等运算方法
按位与运算符(&)
参加运算的两个数据,按二进制位进行“与”运算,负数按补码形式参加按位与运算
运算规则
1 | 0 & 0 = 0 |
例子
1 | 3 & 5 |
特殊用途
- 清零(如果想将一个单元清零,即使其全部二进制位为 0 ,只要与一个各位都为零的数值相与,结果为零)
- 取一个数中指定位
例:设 X = 10101110,取X的低4位,用 X & 0000 1111 = 0000 1110 即可得到
按位或运算符(|)
参加运算的两个对象,按二进制位进行“或”运算,负数按补码形式参加按位或运算
运算规则
1 | 0 | 0 = 0 |
例子
1 | 3 | 5 |
特殊用途
- 对一个数据的某些位置 1
例:将 X = 10100000 的低 4 位置 1 ,用 X | 0000 1111 = 1010 1111 即可得到
异或运算符(^)
参加运算的两个数据,按二进制位进行“异或”运算
运算规则:
1 | 0 ^ 0 = 0 |
特殊用途
- 使特定位翻转找一个数,对应 X 要翻转的各位,该数的对应位为 1,其余位为 0,此数与 X 对应位异或即可
例:X = 10101110,使 X 低 4 位翻转,用X ^ 0000 1111 = 1010 0001即可得到
取反运算符(~)
参加运算的一个数据,按二进制位进行“取反”运算
运算规则:
1 | ~1 = 0 |
特殊用途
- 使特定位翻转找一个数,对应 X 要翻转的各位,该数的对应位为 1,其余位为 0,此数与 X 对应位异或即可
例:X = 10101110,使 X 低 4 位翻转,用X ^ 0000 1111 = 1010 0001即可得到