Поразрядные (битовые) булевские и сдвиговые операции

   
На этом шаге мы рассмотрим правила использования поразрядных логических операций и операций сдвига.

   
Поразрядные операции в Object Pascal могут иметь операнды только целого типа. Действие этих операций выполняется поразрядно (побитово) над двоичным представлением операндов.

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

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

   
Результатом операции or будет целочисленное значение, равное десятичному числу, которое соответствует двоичному представлению поразрядно выполненной над исходными операндами логической операции ИЛИ.

   
Результатом операции хоr будет целочисленное значение, равное десятичному числу, которое соответствует двоичному представлению поразрядно выполненной над исходными операндами логической операции исключающее ИЛИ.

   
Результатом операции A shl В будет целочисленное значение, равное десятичному числу, полученному в результате поразрядного сдвига влево двоичного представления операнда А на В разрядов. Освободившиеся при этом разряды заполняются нулями.

   
Результатом операции A shr В будет целочисленное значение, равное десятичному числу, полученному в результате поразрядного сдвига вправо двоичного представления операнда А на В разрядов. Освободившиеся при этом разряды заполняются нулями.

   
Сведем все сказанное в таблицу:

Таблица 1. Поразрядные операции

ОперацияДействиеТип операндовТип результата
Унарные
notПоразрядное отрицаниеЦелыйЦелый
Бинарные
andПоразрядное ИЦелыйЦелый
orПоразрядное ИЛИЦелыйЦелый
xorПоразрядное исключающее ИЛИЦелыйЦелый
shlПоразрядный сдвиг влевоЦелыйЦелый
shrПоразрядный сдвиг вправоЦелыйЦелый

   
Примеры. Если операнды А и В будут иметь тип Byte, то выполнение рассматриваемых операций при А=11, В=2 даст следующие результаты:

Таблица 2. Примеры выполнения операций

 Десятичное значениеДвоичное представление
Операнд A1100001011
Операнд B200000010
not A24411110100
A and B200000010
A or B1100001011
A xor B900001001
A shl B4400101100
A shr B200000010

   
На следующем шаге мы рассмотрим операцию конкатенации.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий