Логические основы ЭВМ

 

Кроме арифметических, ЭВМ выполняют также логические операции, основанные на понятиях алгебры логики. Основным понятием алгебры логики является высказывание. Высказывание это законченное предложение, о котором можно сказать, что его содержание либо истинно, либо ложно. Каждому высказыванию можно приписать одно из двух значений: истинному высказыванию соответствует значение "1", а ложному – "0".

Из нескольких простых высказываний можно составлять сложные высказывания. Для объединения простых высказываний в сложные применяются знаки логических операций: отрицание, конъюнкция, дизъюнкция, равнозначность. В ЭВМ названные операции выполняются над двоичными кодами поразрядно, т.е. в каждом разряде, независимо от остальных разрядов.

Конъюнкция двух высказываний А и В (логическое умножение) обозначается А^В или А*В (читается «А и В»). Значение истинности конъюнкции следующее:

А В А^В

Результат операции логического умножения является истинным тогда, когда истинны оба высказывания. Если оба высказывания, или хотя бы одно из них ложно, то и А^В тоже ложно.

Из определения конъюнкции и значения ее истинности вытекает, что:

А^0=0, А^1=1, А^А=А.

Операция логическое умножение в ЭВМ похожа на обычное умножение, но отличается тем, что она проходит в каждом разряде независимо от остальных разрядов.

Примеры: 1011010111 1-й операнд A= 10110

^ 0010110101 2-й операнд B= 11010

0010010101 – результат A^B= 10010

Дизъюнкция двух высказываний А и В (логическое сложение) обозначается АvВ, или А+В (читается «А или В»). Значение истинности дизъюнкции следующее:

А В АvВ

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

Из определения дизъюнкции и значения её истинности следует, что:

Аv0=А, Аv1=1, АvА=А.

Логическое сложение в ЭВМ тоже поразрядная операция. Если возьмем те же два исходных числа, то результат этой операции будет таким:

1011010111 1-й операнд А= 10110

0010110111 2-й операнд В= 11010

0010010101 результат АvВ= 11110

Равнозначность двух высказываний А и В обозначается А~В, или А=В (читается «А равнозначно В»). Значение истинности равнозначности следующее:

А В А~В

Два высказывания считаются равнозначными, если значения истинности их одинаково, т.е. запись А=В показывает, что высказывания А и В либо оба истинны, либо оба ложны. Из таблицы истинности равнозначности получается:

А~1=А; А~0=А.

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

Например: А=10110

В=10101

А~В=11100

Отрицание равнозначности двух высказываний А и В (сопоставление или сравнение) обозначается , или А#В, или А<>В (читается "А неравнозначно В").

Значение истинности отрицания равнозначности следующее:

А В

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

Как и предыдущие, эта операция в ЭВМ является поразрядной. Произведем её над теми же двумя двоичными кодами.

1011010111 1-й операнд

0010110101 2-й операнд

1001100010 результат

Отрицание равнозначности двух высказываний представляет собой сложное высказывание, получаемое при помощи двух ранее описанных логических операций: .

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

 

Переместительный: А^В=В^А; АvВ=ВvА.

Сочетательный:^В)^С=А^^С)=В^^С);

vВ)+С=АvvС)=ВvvС).

Распределительный: А^ВvС=(АvС) ^vС);

vВ)^С=А^СvВ^С.

Закон инверсии: ;

.

 

К группе логических операций иногда относят и операцию сдвига. При выполнении этой операции происходит перемещение влево или вправо всех двоичных цифр содержимого указанной ячейки (поля) на заданное количество разрядов. При этом разряды, выдвигающиеся за пределы ячейки, теряются, а освобождающиеся разряды заполняются нулями. Пусть, например, десятиразрядная ячейка содержит код 1101011110. Содержимое, этой ячейки после сдвига соответственно на три разряда вправо и на четыре разряда влево изобразится так:

 

 
а)

б)

в)

 

а) содержимое ячейки до сдвига;

б) после сдвига на три разряда вправо;

в) после сдвига на четыре разряда влево.

Перечисленные логические операции широко применяются при необходимости обрабатывать содержимое части ячейки или байта, «упаковать» несколько элементов данных в одну ячейку, проверять наличие и отсутствие в заданном поле тех или иных элементов или признаков и пр.

Алгебра логики находит весьма широкое практическое применение. Важное значение имеет приложение алгебры логики к синтезу контактных схем.

Контактная схема представляет собой устройство из проводов и контактов, связывающих два или более полюсов. Мы будем рассматривать схемы, имеющие два полюса, один из которых является входом в систему, а другой – выходом.

 
 

Контакты бывают двух типов: замыкающие и размыкающие. Замыкающий контакт (см. рис. 8.1.а) в нерабочем состоянии сохраняет цепь в разомкнутом состоянии (т.е. если кнопка контакта не нажата, то цепь разомкнута). При рабочем состоянии (кнопка нажата) контакт замыкает цепь. Размыкающий контакт, наоборот, в нерабочем состоянии замыкает цепь, а в рабочем – размыкает.