下面的位运算符在现实世界中有哪些用例?

和 XOR 不 或 左/右转


当前回答

一个数x是2的幂吗?(例如,在计数器递增的算法中很有用,并且一个操作只执行对数次)

(x & (x - 1)) == 0

整数x的最高位是哪位?(例如,这可以用来找出比x大的2的最小次幂)

x |= (x >>  1);
x |= (x >>  2);
x |= (x >>  4);
x |= (x >>  8);
x |= (x >> 16);
return x - (x >>> 1); // ">>>" is unsigned right shift

整数x的最小1位是哪一位?(帮助找出能被2整除的次数。)

x & -x

其他回答

我使用它们来实现快速BCD计算(会计师和审计员会对fp舍入感到不安)。

当我第一次开始C编程时,我理解了真值表和所有的东西,但直到我读了这篇文章http://www.gamedev.net/reference/articles/article1563.asp(它给出了真实的例子),我才完全了解如何实际使用它。

我们使用位标记,使会话较小的登录权限在我们的内部网站。

似乎没有人提到定点数学。

(是的,我老了,好吗?)

我见过它们在基于角色的访问控制系统中使用。