c语言中按位或与按位异或的区别,C:按位与、按位或、按位异或运算

  • Post author:
  • Post category:其他


一、按位与 &

1.概念:参加运算的两个对象,按二进制位进行“与”运算,负数按补码形式参加按位与运算。

2.规则

0&0=0; 0&1=0; 1&0=0; 1&1=1;

即:两位同时为“1”,结果才为“1”,否则为0

例如:4&30 即 0000 0100 & 0001 1110 = 0000 0100 因此,4&30的值得4

3.注意事项和用途

注意:负数按补码形式参加按位与运算

用途:

清零:如果想将一个单元清零,即使其全部二进制位为0,只要与一个各位都为零的数值相与,结果为零。

取一个数中指定位:

找一个数,对应X要取的位,该数的对应位为1,其余位为零,此数与X进行“与运算”可以得到X中的指定位。

例:设X=10101110,

取X的低4位,用 X & 0000 1111 = 0000 1110 即可得到;

还可用来取X的2、4、6位。

二、按位或 |

1.概念:参加运算的两个对象按二进制位进行“或”运算,负数按补码形式参加按位与运算。

2.规则

运算规则:0^0=0; 0^1=1; 1^0=1; 1^1=0;

即:参加运算的两个对象,如果两个相应位为“异”(