Битовые операции
Эти операции предназначены для работы (установки/снятия/проверки) групп битов в целой переменной. Биты целого числа— это не что иное[В. О.36] , как отдельные разряды того же самого числа, записанного в двоичной системе счисления. Например, в двоичной системе число 12 будет выглядеть как 1100, а 2 — как 10, так что выражение 12|2 вернет нам число 14 (1110 в двоичной записи). Если переменная не целая, то она вначале округляется, а уж затем к ней применяются перечисленные ниже операторы.
r a & b — результат — число, у которого установлены только те биты, которые установлены и у a, и у b одновременно.
r a | b — результат — число, у которого установлены только те биты, которые установлены либо в a, либо в b (либо одновременно).
r ~ a — результат, у которого на месте единиц в a
стоят нули, и наоборот.
r a << b — результат — число, полученное поразрядным сдвигом a на b битов влево.
r a >> b — аналогично, только вправо.