Учись программированию на C++ Builder бесплатно!

Поразрядные логические операции работают с целыми числами и оперируют с их двоичными представлениями, т.е. работают с двоичными разрядами операндов.

Обозначение Операция Пример
~ поразрядное отрицание ~ X
& поразрядное И X & Y
| поразрядное ИЛИ X | Y
^ поразрядное исключающее ИЛИ X ^ Y
<< поразрядный сдвиг влево X << 2
>>  поразрядный сдвиг вправо Y >> I

Операция поразрядного отрицания (~) инвертирует каждый бит операнда. Поразрядные операции & | и ^ работают в соответствии со следующей таблицей, где Е1 и Е2 - сравниваемые биты операндов:

Е1 Е2 E1 & Е2 E1 ^ Е2 Е1 | Е2
0 0 0 0 0
1 0 0 1 1
0 1 0 1 1
1 1 1 0 1

Операция поразрядного сдвига вправо (>>) сдвигает биты левого операнда на число разрядов, указанное правым операндом. При этом правые биты теряются.

Если левый операнд представляет собой целое без знака, то левые освободившиеся биты заполняются нулями. В противном случае они заполняются символом знака. Сдвиг целого числа на n разрядов вправо эквивалентен целочисленному делению его на 2.

Операция поразрядного сдвига влево (<<) сдвигает биты левого операнда на число разрядов, указанное правым операндом. При этом левые биты теряются, а правые заполняются нулями. Сдвиг целого числа на n разрядов влево эквивалентен умножению его на 2.


Поиск по сайту