-2

私の質問は、C++の「|=」は何ですか?それらはビット演算子であることがわかりますが、ここで何をするのかわかりません。

gObj->Variable |= 0x1000000;

また、この場合の「&」演算子はどういう意味ですか?

if ((gObj->Variable & 2) == 2)
{
    do stuff
}
4

3 に答える 3

5

これらはビット演算です。

|OR演算を表し&AND演算を表します。

x |= y

と同等です

x = x | y

これらの操作は非常に簡単で直感的であるため、16進値で使用するのが非常に一般的です。例えば:

0x10 | 0x01 = 0x11
0x10 & 0x01 = 0x00
0x10 & 0x11 = 0x10
于 2012-06-15T20:56:21.027 に答える
3

私はC++の専門家ではありませんが、これらは+=または*=のように扱われると思います。つまり、その変数のビットを、指定した16進数とビット単位で論理和します。また、Variable&2は10(バイナリ)でビット単位のANDを実行しています。

于 2012-06-15T20:55:54.383 に答える
0

これはビット単位の OR 演算子であり、上記のステートメントは変数の最初のビットを 1 に設定します。

于 2012-06-16T08:33:10.667 に答える