Математические операции над двоичными кодами просты до безобразия, по сравнению с десятичными цифрами.
Операция сложения выглядит так:
1101 + 0110 10011
В десятичном эквиваленте это 13 + 6 = 19. Следует помнить, что при сложении двух едениц получается ноль, а единица переносится в старший разряд.
Еще проще операция умножения:
1011 х 110 0000 1011 1011 1000010
При умножении на разряд множимое либо повторяется, либо записываются нули. В данном случае была произведена операция умножения 11 х 6 = 66.
Поскольку в цифровых устройствах используются только два символа 0 и 1, алгебра логики использует логические переменные и функции от них, которые также принимают только два значения - 0 и 1. В логике символы 0 и 1 не цифры. Единица обозначает абсолютную истину, символ 0 - абсолютную ложь. Основы алгебры логики придумал в середине XIX века ирландский математик Дж. Буль, поэтому алгебра логики иногда называется булева алгебра.
В отличие от обычной математики, в алгебре логики операции сложения и умножения заменяют операцией логического умножения, которая по-буржуйски звучит красивым словом конъюнкция, и операцией логического сложения (дизъюнкция). Для обозначения операций сложения и умножения используют специальные символы: \/ - логическое сложение, /\ - логическое умножение, но мы для простоты будет обозначать привычными нам + и х, все равно правильно. Опять же, "х" - это не всеми любимая буква, а знак умножения.
Операция логического сложения обозначается союзом "ИЛИ", да да, БОЛЬШИМИ БУКВАМИ. Выражение a + b означает "или a или b". т. е. если и a, и b равно нулю, то и результат равен нулю. Результат равен единице, если хотя бы одна из переменных равна единице. Результат также будет единицей, если обе переменных равны единице.
Логическое умножение обозначается союзом "И", также В ВЕРХНЕМ РЕГИСТРЕ. Выражение a x b означает "a и b", т. е. если a и b равны нулю, то и результат равен нулю. Если одна из переменных равна единице, другая нулю, то результат все равно равен нулю. Результат равен единице, если обе переменных равны единице. В двух словах все вышесказанное: для логического сложения результат равен нулю только при совпадении нулей, для логического умножения результат равен единице только при совпадении единиц.
Есть еще понятие отрицания, обозначаемое "НЕ". Обозначается отрицание чертой над обозначением переменной или символом , стоящим перед переменной. Например, ā означает отрицание a. По-другому это отрицание называется инверсией. То есть, если a = 1, то ā = 0 и наоборот. Отрицание может быть не только одной переменной, но и целого выражения.
Понятие двоичной переменной, логических операций И, ИЛИ, НЕ образуют систему аксиом алгебры логики.
Аналогично обычной алгебре, в булевой действительны свойства перестановки, сочетательности и распределительности:
a + b = b + a
a x b = b x a
a + (b + c) = (a + b) + c
a x (b x c) = (a x b) x c
a x (b + c) = a x b + a x c
Помимо этих есть и другие, свойственные только алгебре логики, законы:
Законы одинарных элементов
a x 1 = a
a + 1 = 1
a x 0 = 0
a + 0 = a
Законы отрицания (правила де Моргана)
Распределительность дизъюнкции
a + (b x c) = (a x b) + (a x c)
Правила поглощения
a + (a x b) = a
a x (a + b) = a
Эти правила и законы позволяют значительно упростить логические уравнения и функции.
Математика, конечно, хороша, но на цифрах и символах далеко не уедешь. Самое главное теперь запихать всю эту галиматью в конкретное устройство и оно должно работать. Для начала посмотрим на логические элементы, реализующие все вышеперечисленное.
Схема "И"
Двухвходовый логический элемент "И" обозначается вот так:
x2
x1
y
Такая табличка называется таблицей истинности логического элемента. Она поясняет, как работает элемент, т. е. какой сигнал на его выходе при определенных сигналах на входе. Таблицы истинности присуще всем цифровым устройствам. В этой таблице символы x1 и x2 означают входные сигналы, y - выходные. Причем входы принято обозначать слева (это касается любых устройств), выходы - справа. Переменная х с индексом 1 обозначает младший разряд, x2 - старший. Судя по таблице, единица будет на выходе только тогда, когда на обоих входах будут единицы. Символ & говорит о том, что это элемент "И". Не так уж и сложно, правда?
Схема "ИЛИ"
Логический элемент "ИЛИ" обозначается так:
Его таблица истинности:
x2
x1
y
То есть, единица на выходе тогда, когда хотя бы на одном из входов присутствует единица. Символ 1 говорит о том, что это элемент "ИЛИ".
Схема "НЕ"
Логический элемент "НЕ", который иначе называется инвертор, обозначается так:
Таблица истинности:
x
y
Как видно, этот элемент проще всех. О том, что это инвертор, говорит кружок на выходе элемента. В электронике принято кружком обозначать инверсию сигнала, т. е. переворот фазы на 180 градусов. Вспомните операционный усилитель (ОУ), неинвертирующий вход как обычно, инвертирующий с кружком, т. к. на выходе ОУ при подаче сигнала на инвертирующий вход сигнал переворачивается по фазе на 180 градусов, т. е. инвертируется.
Теперь поглядим еще на парочку элементов, имеющих некоторые особенности.