ЛОГИЧЕСКИЙ ( или БУЛЕВЫЙ) ТИП определяется в разделе объявлений словом Boolean (в честь английского математика Джорджа Буля, автора алгебры логики).К логическому типу относятся такие переменные (аргументы, функции, выражения), которые могут принимать одно из двух значения – False (Ложь) или True (Истина). Для хранения логической переменной в памяти ЭВМ отводится один байт.
Операции, разрешенные для логических переменных:
1. Операции отношения (<, >, <=, >=, =, <>), при выполнении которых предполагается, что False < True.
2. Логические операции: логическое отрицание Not (НЕ), логическое сложение Or (ИЛИ), логическое умножение And (И), логическая операция Xor (“исключающее ИЛИ”).
Примечания.
1. Результатом выполнения любой операции отношения, независимо от типа переменных или выражений в правой и левой части от знака отношения, является значение Истина или Ложь, то есть любая операция отношения имеет булевский тип. Поэтому, очевидно, что переменная У в формуле У := 2 > 3; должна быть описана как переменная типа Boolean и принимает значение Ложь.
2. Перечисленные выше логические операции применимы не только к логическим переменным, но и к любым целым (имеющим, например, тип byte, integer и т.д.). При этом логические операции выполняются поразрядно над двоичными кодами целых чисел. Очевидно, что при этом тип целых чисел, участвующих в логических операциях, должен быть один и тот же. Например, операторы
У1:=37 And 25; У2:=37 Or 25;
выполняются следующим образом: числа из десятичной системы счисления переводятся в двоичную
37(10)=100101(2), 25(10)=11001(2)
и над соответствующими разрядами двоичных кодов выполняются операция логического умножения
100101 & 011001 = 000001(2) =1(10)
и операция логического сложения
100101 v 011001 = 111101(2) = 61(10) ,
то есть будут получены следующие значения: У1=1, У2=61.