8

最近、ある人の C++ プロジェクトを見て、彼のプロジェクトの動作原理を理解しようとしていました。ビットごとの AND 代入演算子の使用については少しわかりません。

私は彼に尋ねることができないので、ここにいる誰かが私を助けてくれるかもしれないと思った...

" unsigned int X = 0; " 変数があり、while ループで常に "1" ずつインクリメントされます。

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

「 &= 」の使い方がよくわかりません。そのような使い方の目的は何でしょうか?

ありがとう。

4

4 に答える 4

2
X &= (1024 - 1);

X = X & 1023

すべての最初の10ビット (1023 は11111111112 進数) を保持し0、残りを設定します。

Xループでは、が を超えないようにするのに役立ちます1023。単純な等しいコードは次のとおりです。

while (...)
{
   ... some code ...
   X++;
   X = X % 1024; // more closely resembles the original intent
}
于 2013-10-25T13:04:01.617 に答える