Бинарные операции побитового сдвига осуществляют сдвиг битов в двоичном представлении целого числа,
заданного левым операндом, влево «или вправо» на количество бит, определяемых правым целочисленным
операндом. При сдвиге вправо недостающие старшие биты, а при сдвиге влево младшие биты числа дополняются
нулями. Биты, выходящие за разрядную сетку, пропадают:
# Число 5: (00000000000000000000000000000101)
5 >> 2 # Результат: (00000000000000000000000000000001) = 1
5 << 2 # Результат: (00000000000000000000000000010100) = 20
Все перечисленные побитовые операции работают и с отрицательными целыми числами, только при их
использовании следует учитывать, что в памяти компьютера целые отрицательные числа хранятся в
дополнительном коде. Двоичная запись неотрицательного целого числа называется прямым кодом. Обратным
кодом называется запись, полученная поразрядной инверсией прямого кода. Отрицательные целые числа
представляются в памяти компьютера в дополнительном коде, который получается прибавлением единицы к
младшему разряду обратного кода. Например, представление числа -5 получается следующим образом:
00000000000000000000000000000101 # положительное число 5
11111111111111111111111111111010 # обратный код числа 5
11111111111111111111111111111011 # добавляем к младшему
# разряду обратного кода 1
# и получаем представление
# числа -5
Строковые операнды
Четыре побитовые операции (~, |, & и ^) могут вычислять соответствующие булевы функции и над
битовыми строками произвольной длины. В этом случае оба их операнда должны быть представлены
строковыми литералами или переменными, содержащими строковые данные, причем результат интерпретируется
как строка символов. Битовые строки формируются на основе ASCII-кодов символов, содержащихся в
операндах-строках, с учетом того, что каждый символ представлен одним байтом.