ГЛАВА 3: Выражения, операторы и управляющие конструкции.
Поразрядные операторы
Поразрядные операторы выполняют операции с целыми числами на уровне отдельных битов, составляющих число. Чтобы лучше понять принцип их работы, необходимо иметь хотя бы общее представление о двоичном представлении десятичных чисел. В табл. 3.9 приведены примеры десятичных чисел и соответствующих им двоичных представлений.
Таблица 3.9. Десятичные числа и их двоичные представления
Десятичное целое
Двоичное представление
2
10
5
101
10
1010
12
1100
145
10010001
1 452 012
1011000100111111101100
Поразрядные операторы, перечисленные в табл. 3.10, представляют собой особый случай логических операторов, однако они приводят к совершенно иным результатам.
Таблица 3.10. Поразрядные операторы
Пример
Название
Результат
$а&$b
Конъюнкция
С битами, находящимися в одинаковых разрядах $а и $b, выполняется операция конъюнкции
$а|$b
Дизъюнкция
С битами, находящимися в одинаковых разрядах $а и $b, выполняется операция дизъюнкции
$а^$b
Исключающая
С битами, находящимися в одинаковых разрядах $а и $b, выполняется операция исключающей дизъюнкции
~$b
Отрицание
Все разряды переменной $b инвертируются
$а << $b
Сдвиг влево
Переменной $а присваивается значение $b, сдвинутое влево на два бита
$а >> $b
Сдвиг вправо
Переменной $а присваивается значение $b, сдвинутое вправо на два бита
Если вам захочется больше узнать о двоичном представлении и поразрядных операторах, я рекомендую обратиться к обширному электронному справочнику Рэндалла Хайда(Randall Hyde) «The Art of Assembly Language Programming», доступному по адресу http://webster.cs.ucr.edu/Page_asm/Page_asm.html. Это лучший из ресурсов, которые мне когда-либо встречались в Web.