К
побитовым относятся бинарные операции and
, or
, not
,
xor
, shl
, shr
. Они
производят побитовые манипуляции с операндами целого типа. Результирующий тип
для and
, or
,
xor
будет наименьшим целым, включающим все возможные значения обоих типов операндов.
Для shl
, shr
результирующий
тип совпадает с типом левого операнда, для not
- с типом операнда.
Побитовые операции осуществляются следующим образом: с каждым битом (0 принимается за False, 1 - за True) производится соответствующая логическая операция. Например:
00010101 and 00011001 = 00010001
00010101 or 00011001 = 00011101
00010101 xor 00011001 = 00001100
not 00010101 = 11101010
(операнды и результат представлены в двоичной форме).
Операциии shl и shr имеют вид:
a shl n
a shr n
где n - целое положительное число, a - целое число.
a shl n
представляет собой целое положительное, полученное из двоичного
представления числа a сдвигом влево на n позиций. Добавляемые справа позиции
заполняются нулями.
a shr n
представляет собой целое положительное, полученное из двоичного
представления числа a сдвигом вправо на n позиций.
Например:
3 shl 2 = 12
12 shr 2 = 3
поскольку 3=112, после сдвига влево на 2 позиции 112 преобразуется в 11002=12, а 12=11002 после сдвига вправо на 2 позиции преобразуется в 112=3.