end;
var A, B, C : byte; { Операнды и результат }
begin {=== Главная программа ===}
repeat
Write('A= '); Readln(A);
Write('B= '); Readln(B);
C:= A or B; { логическое сложение (объединение) }
Writeln;
Writeln('C= A OR B');
Writeln('A= ',ConvertTo2(A), A:5);
Writeln('B= ',ConvertTo2(B), B:5);
Writeln('C= ',ConvertTo2(C), C:5);
C:= A and B; { логическое умножение (пересечение) }
Writeln;
Writeln('C= A AND B');
Writeln('A= ',ConvertTo2(A), A:5);
Writeln('B= ',ConvertTo2(B), B:5);
Writeln('C= ',ConvertTo2(C), C:5);
C:= not A; { логическое отрицание (инверсия) }
Writeln;
Writeln('C= NOT A');
Writeln('A= ',ConvertTo2(A), A:5);
Writeln('C= ',ConvertTo2(C), C:5);
until A=0;
end.
Главная программа не должна вызывать вопросов: после ввода пары чисел и выполнения логических операций с ними, на экран выводятся как исходные числа, так и результаты. Причем выводятся и в двоичной, и в десятичной системах счисления, например:
C= A OR B
A= 00001101 13
B= 00001011 11
C= 00001111 15
C= A AND B
A= 00001101 13
B= 00001011 11
C= 00001001 9
C= A XOR B
A= 00001101 13
B= 00001011 11
C= 00000110 6
C= NOT A
A= 00001101 13
C= 11110010 242
По результатам этих опытов выведены правила для логических операций (табл. 12). Логическое отрицание «НЕ» отличается от прочих тем, что применяется к одному операнду.
Табл. 12 – Правила выполнения логических операций с битами