<< =和| =的含义

问题描述 投票:20回答:1

<<=|=在C中的含义是什么?

我认识<<是bitshift等,但我不知道这些是什么组合。

c operators semantics bit-shift logical-operators
1个回答
33
投票

就像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)
© www.soinside.com 2019 - 2024. All rights reserved.