Значение << = и | = - PullRequest
       50

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

20 голосов
/ 26 мая 2011

Что означает <<= и |= в C?

Я узнаю, << - битовое смещение и т. Д., Но я не знаю, что это за комбинация.

1 Ответ

33 голосов
/ 26 мая 2011

Как 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)
...