Cでの<<=
および|=
の意味は何ですか?
私は<<
がビットシフトなどであることを認識していますが、これらがどのように組み合わされているのかわかりません。
x += 5
がx = x + 5
を意味するのと同様に、x <<= 5
はx = x << 5
を意味します。
|
も同様です。これはビット単位のor
であるため、x |= 8
はx = x | 8
を意味します。
明確にするための例を次に示します。
int x = 1;
x <<= 2; // x = x << 2;
printf("%d", x); // prints 4 (0b001 becomes 0b100)
int y = 15;
y |= 8; // y = y | 8;
printf("%d", y); // prints 15, since (0b1111 | 0b1000 is 0b1111)