Побитовые операции

Побитовые операции

К побитовым относятся бинарные операции 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.