问题

如何在C / C ++中设置,清除和切换位?



解决方法

Setting a bit

使用按位OR运算符( | )设置位.

number |= 1 << x;

这将设置位 x .

Clearing a bit

使用按位AND运算符(&amp; )清除位.

number &= ~(1 << x);

这将清除 x 位.您必须使用按位NOT运算符()反转位串,然后AND.

Toggling a bit

XOR运算符( ^ )可用于切换位.

number ^= 1 << x;

这将切换位 x .

Checking a bit

你没有要求这个,但我也可以添加它.

要检查位,请将数字x向右移,然后按位AND:

bit = (number >> x) & 1;

这将把 x 的值放入变量 bit .

Changing the nth bit to x

n 位设置为 1 0 可以通过以下方式实现:

number ^= (-x ^ number) & (1 << n);

如果 x 1 ,则会设置 n ,如果 x 0, .




相关问题推荐