2013-07-01 3 views
-3

Я интересно знать, что есть смысл оператора << вЗначение << оператора в C

#define x (10 * (1<<12)); 
+1

Это левое разрядное смещение? – Nobilis

+1

Это оператор сдвига влево, как вам расскажет любая [достойная книга на C] (http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list). –

+0

Не два '<<' - это один оператор, побитовый сдвиг влево –

ответ

1

Это bitshift operator. << есть shift левый, >> есть смена правый. 1 << 12 означает смещение значения (int '1') 12 бит влево.

'1' - 00000000 00000000 00000000 00000001 в двоичном формате, если это 32-битное целое число. сдвинуть его влево на 12 мест, изменяет его: 00000000 00000000 00010000 00000000

Если бы вы были перекладывать 5 << 8, '5' в двоичных 101, поэтому он будет смещаться:

00000000 00000000 00000000 00000101 

В:

00000000 00000000 00000101 00000000 

Для получения дополнительной информации о других побитовых операциях см. this question.

Смежные вопросы