<<
является оператором левого сдвига . Это смещение числа 1
влево 0
битов, что эквивалентно числу 1
.
Обычно используется для создания флагов , чисел, которые можно объединить вместе с |
(бит или), и к ним могут применяться различные операции, такие как проверка, установлен ли флаг, настройка флаг, снятие флага и т. д.
Причина, по которой они могут объединяться друг с другом, не мешая друг другу, заключается в том, что каждый из них имеет степень , равную двум , и именно поэтому используется 1 << x
, поскольку он дает степени двух:
1 << 0 == 2 <sup>0 == 1 == двоичный файл 0001
1 << 1 == 2 <sup>1 == 2 == двоичный файл 0010
1 << 2 == 2 <sup>2 == 4 == двоичный 0100
1 << 3 == 2 <sup>3 == 8 == двоичный файл 1000
и т.д.
Вы можете прочитать о битовых флагах здесь: http://www.codeproject.com/KB/tips/Binary_Guide.aspx