<< =和| =的含义

SK9*_*SK9 21 c operators bit-shift logical-operators semantics

在C 中<<=和是什么意思|=

我认识到<<是bithift等,但我不知道这些是什么组合.

Chr*_*per 34

就像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)
Run Code Online (Sandbox Code Playgroud)