На этом шаге мы рассмотрим правила использования поразрядных логических операций и операций сдвига.
Поразрядные операции в Object Pascal могут иметь операнды только целого типа. Действие этих операций выполняется поразрядно (побитово) над двоичным представлением операндов.
Результатом операции not будет целочисленное значение, равное десятичному числу, которое соответствует поразрядно инвертированному двоичному представлению исходного операнда.
Результатом операции and будет целочисленное значение, равное десятичному числу, которое соответствует двоичному представлению поразрядно выполненной над исходными операндами логической операции И.
Результатом операции or будет целочисленное значение, равное десятичному числу, которое соответствует двоичному представлению поразрядно выполненной над исходными операндами логической операции ИЛИ.
Результатом операции хоr будет целочисленное значение, равное десятичному числу, которое соответствует двоичному представлению поразрядно выполненной над исходными операндами логической операции исключающее ИЛИ.
Результатом операции A shl В будет целочисленное значение, равное десятичному числу, полученному в результате поразрядного сдвига влево двоичного представления операнда А на В разрядов. Освободившиеся при этом разряды заполняются нулями.
Результатом операции A shr В будет целочисленное значение, равное десятичному числу, полученному в результате поразрядного сдвига вправо двоичного представления операнда А на В разрядов. Освободившиеся при этом разряды заполняются нулями.
Сведем все сказанное в таблицу:
Операция | Действие | Тип операндов | Тип результата |
---|---|---|---|
Унарные | |||
not | Поразрядное отрицание | Целый | Целый |
Бинарные | |||
and | Поразрядное И | Целый | Целый |
or | Поразрядное ИЛИ | Целый | Целый |
xor | Поразрядное исключающее ИЛИ | Целый | Целый |
shl | Поразрядный сдвиг влево | Целый | Целый |
shr | Поразрядный сдвиг вправо | Целый | Целый |
Десятичное значение | Двоичное представление | |
---|---|---|
Операнд A | 11 | 00001011 |
Операнд B | 2 | 00000010 |
not A | 244 | 11110100 |
A and B | 2 | 00000010 |
A or B | 11 | 00001011 |
A xor B | 9 | 00001001 |
A shl B | 44 | 00101100 |
A shr B | 2 | 00000010 |
На следующем шаге мы рассмотрим операцию конкатенации.