最近,我正在看某人的C++项目,并试图弄清楚他项目的某些工作原理。我对按位与赋值运算符的使用尚不清楚。
我不能问他,所以我想也许有人可以帮我...
有一个“ unsigned int X = 0; ”变量,它在while循环中始终以“1”递增。
while (...)
{
... some code ...
X++;
X &= (1024 - 1);
}
我不太了解&= 的用法,这种用途的目的是什么?
谢谢。
最佳答案
1024 - 1
是1023
,二进制为1111111111X &= Y
表示X = X & Y
;
所以这翻译成X = X & (binary) 1111111111
除了十个最低位,这将掩盖所有内容。
这将使X在0到1023之间回绕(但与将X重置为零不同,因为它可以处理所有溢出)
关于c++ - 不清楚按位与分配的使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19590505/