我发现以下代码片段,我认为它是将整数转换为二进制的等效形式。
有人能告诉我为什么要使用 &1 而不是 %2 吗?非常感谢。
for (i = 0; i <= nBits; ++i) {
bits[i] = ((unsigned long) x & 1) ? 1 : 0;
x = x / 2;
}
(unsigned long) x & 1 != 0) ? (true ? 1 : 0) : (!true ? (x, 0), -0)
吗? - Kerrek SB<=
是正确的吗? - Kerrek SBn
为2的幂次方时,x % n
等同于x & (n-1)
。我认为人们使用&
形式是因为他们认为这是一种微小的优化。 - M.M