位运算的妙用

来源:互联网 发布:java程序员培训学校 编辑:程序博客网 时间:2024/06/06 16:37

一、(^)异或运算 [异为1 通为0]

1.使特定位翻转找一个数,对应X要翻转的各位,该数的对应位为1,其余位为零,此数与X对应位异或即可。
例:X=10101110,使X低4位翻转,用X ^0000 1111 = 1010 0001即可得到。
2.与0异或得到原值
例:X=10101110,用X^0=10101110
3.两个数字进行异或运算求出不同的位

二、(|)或运算 [全错才为错]

1.指定位置置1
2.或0为本身

三、(&)与运算 [全对才为对]

1.清零。如果想将一个单元清零,即使其全部二进制位为0,只要与一个各位都为零的数值相与,结果为零。
2.取一个数中指定位(和1相&是本身)
方法:找一个数,对应X要取的位,该数的对应位为1,其余位为零,此数与X进行“与运算”可以得到X中的指定位。
例:设X=10101110,
取X的低4位,用 X & 0000 1111 = 0000 1110即可得到;
3.两个数字进行与运算求出相同的位