#c #operators #semantics #bit-shift #logical-operators
#c #операторы #семантика #битовый сдвиг #логические операторы
Вопрос:
Что означает <<=
и |=
в 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)