Значение << = и | =

В чем смысл <<= и |= в C?

Я признаю, что << - бит-брейк и т.д., но я не знаю, что это в комбинации.

Ответы

Ответ 1

Так же, как 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)