C中<<=
和|=
的含义是什么?
我认识<<
是bithift等,但我不知道这些是什么组合。
答案 0 :(得分:32)
正如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)