What is the meaning of <<=
and |=
in C?
I recognise <<
is bitshift etc. but I don't know what these are in combination.
Just as x += 5
means x = x + 5
, so does x <<= 5
mean x = x << 5
.
Same goes for |
. This is a bitwise or
, so x |= 8
would mean x = x | 8
.
Here is an example to clarify:
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)