最近,我正在看某人的C++项目,并试图弄清楚他项目的某些工作原理。我对按位与赋值运算符的使用尚不清楚。

我不能问他,所以我想也许有人可以帮我...

有一个“ unsigned int X = 0; ”变量,它在while循环中始终以“1”递增。

while (...)
{
   ... some code ...
   X++;
   X &= (1024 - 1);
}

我不太了解&= 的用法,这种用途的目的是什么?

谢谢。

最佳答案

1024 - 11023,二进制为1111111111
X &= Y表示X = X & Y;

所以这翻译成X = X & (binary) 1111111111
除了十个最低位,这将掩盖所有内容。

这将使X在0到1023之间回绕(但与将X重置为零不同,因为它可以处理所有溢出)

关于c++ - 不清楚按位与分配的使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19590505/

10-10 16:18