Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные / Lr-6 / Введение в булеву алгебру позиционные системы счисления и логические основы ЭВМ Ефремов В.В. Ефремова И.Н..pdf
Скачиваний:
66
Добавлен:
15.03.2016
Размер:
457.81 Кб
Скачать

14

6.1.4 Операции над числами

Для любых чисел определены операции сложения, вычитания, умножения, деления и т.д. Найти сумму, разность, произведение и частное двоичных и шестнадцатеричных чисел, применяя соответствующие этим системам правила переноса и таблицы умножения, можно так же, как и десятичных (Таблица 4).

Технически сложение реализуется с помощью аппаратной реализации логических функций, вычитание может быть реализовано, например, через сложение с числом, представленном в дополнительном или обратном коде. Устройство преобразования числа в дополнительный код в совокупности с сумматором оказываются проще специального устройства для вычитания за счёт сложности реализации заёмов. Если вычитание производится на имеющемся сумматоре, оборудование экономится ещё больше.

Представление числа в обратном (инверсном) коде реализуется заменой значений всех разрядов числа на противоположные: 00011100b 11100011b . Представление числа в дополнительном коде реализуется прибавлением единицы к числу, представленному в обратном коде: 00011100b 11100011b 00000001b=11100100b . Сумма числа и его представления в дополнительном коде даёт единицу: 00011100b 11100100b=100000000b . Если отбросить старший разряд, результат суммы с числом в дополнительном коде будет представлять собой разность чисел. Так как число в обратном коде на единицу меньше, чем в дополнительном, ри реализации вычитания через сложение с числом в обратном коде к результату прибавляется единица в младшем разряде, после чего соответствующее число младших разрядов рассматривается как результат.

6.2 Булева алгебра

История развития булевой алгебры начинается с книги Джорджа Буля «Законы мышления», изданной в 1854г. В ней Буль развил алгебру высказываний. В булевой алгебре каждое высказывание может иметь одно из двух значений: «True» и «False», любые логические выводы формируются посредством простейших логических операций. Значение «True» обычно соответствует двоичной единице, а «False» - нулю. Логические операции аппаратно реали-

15

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

Таблица 5. Таблица истинности одноместных операций.

значение

обозначение

наименование

 

0

1

X

Значение на входе

0

0

0

0

Константа «0» (Тождество 0)

1

0

1

X

Повторение X (Тождество X)

2

1

0

X ,¬X

Отрицание X (инверсия), «НЕ»

3

1

1

1

Константа «1» (Тождество 1)

Таблица 6. Таблица истинности двуместных операций.

№значение обозначение

наименование

0 0 1 1

X

Вход1

0 1 0 1

Y

Вход2

0 0 0 0 0

0

Константа «0» (Тождество 0)

1 0 0 0 1

XY , X Y , X & Y

Конъюнкция (логическое умноже-

 

X Y

ние, «И»)

2 0 0 1 0

Запрет X в Y

3 0 0 1 1

X

Повторение X (Тождество X)

4 0 1 0 0

Y X

Запрет Y в X

5 0 1 0 1

Y

Повторение Y (Тождество Y)

6 0 1 1 0

X Y

Сумма по модулю 2 (исключаю-

 

X Y , X Y

щее «ИЛИ»)

7 0 1 1 1

Дизъюнкция (логическое сложе-

 

X Y , X Y

ние, «ИЛИ»)

8 1 0 0 0

«ИЛИ-НЕ», стрелка Пирса

9 1 0 0 1

X Y , X ~Y , X Y Эквивалентность

A 1 0 1 0

¬Y ,Y

Отрицание Y

B 1 0 1 1

X Y , X Y

Импликация Y в X

C 1 1 0 0

¬X , X

Отрицание X

D 1 1 0 1

X Y , X Y

Импликация X в Y

E 1 1 1 0

XY , X Y

«И-НЕ», Штрих Шеффера.

F 1 1 1 1

1

Константа «1» (Тождество 1)

16

двоичном виде. В связи с этим, булева алгебра получила широкое распространение для реализации обработки информации на ЭВМ.

6.2.1 Булевы функции

Булева алгебра включает в себя четыре одноместные операции (Таблица 5) и шестнадцать двуместных (Таблица 6). По традиции операции булевой алгебры принято называть логическими функциями или функциями - связками. Логические функции описываются с помощью таблиц истинности, которые однозначно определяют значение результата в зависимости от значений аргументов.

Операции, не изменяющие входные значения, называются тривиальными. Операции, результат которых зависит не от всех входных переменных, называются вырожденными. Переменные, не участвующие в результате, называются фиктивными. Для описания более сложных логических функций ни тривиальные, ни вырожденные операции не используются. Логические операции обладают рядом свойств (Таблица 7).

Таблица 7. Свойства логических операций

коммутативность

 

X Y =Y X ,{, , , , | ,≡}

идемпотентность

 

X X =X ,{,}

(тавтология)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ассоциативность

X Y Z =X Y Z ,{, , ,≡}

дистрибутивность

X Y Z =XY XZ , X Y Z =XY XZ ,

 

X YZ= X Y X Z

де Моргана:

 

 

Y =

 

 

,

 

 

 

 

 

=

 

 

 

 

 

 

 

X

XY

X

Y

X Y

поглощения:

 

X X Y =X , X XY =X

отрицание отрица-

 

 

=X

 

X

ния

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нулевого единичного

 

X0=0, X 0=X , X1=X , X 1=1

элемента

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

дополнительного

 

X

 

 

=1, X

 

=0

 

 

 

 

 

X

X

элемента

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сокращения

 

X

 

Y =X Y , X

 

Y =XY

 

X

X

склеивания

 

XY X

 

=X , X Y X

 

=X

 

Y

Y

17

6.2.2 Описание произвольной логической функции

Булевы функции можно определить и для большего числа аргументов (как это можно видеть из свойств). Например, логическое сложение, умножение и ещё три функции для трёх аргументов: f 1 - исключающее «ИЛИ», f 2 - сумма по модулю 2, f 3 - мажоритарная функция, задаются таблицей истинности (Таблица 8).

Всего различных логических функций трёх аргументов будет 256. Рассматривать их все нет никакого смысла, если учесть, что любую из них можно реализовать в виде выражения с помощью одноместных и двуместных логических операций, используя их свойства. Так, X Y Z= X Y Z и XYZ = XY Z .

Значение выражения вычисляется в порядке приоритета операций, а в случае равного приоритета – слева направо. Наивысший

приоритет у операций в скобках, далее

 

 

Таблица 8. Пример

следуют инверсия, конъюнкция, дизъюнк-

 

 

логических функций

ция, сумма по модулю 2, эквивалентность,

 

 

трёх аргументов

 

 

импликация и запрет (всего семь уровней).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

y

z

 

 

 

 

f 1

f 2

f 3

В операциях, записанных подобно

 

 

 

 

 

 

 

 

x y

 

 

 

0

0

0

0

0

 

0

0

 

0

или

 

, сначала вычисляется выраже-

 

 

 

x y

 

 

0

0

1

1

0

 

1

1

 

0

ние под инверсией, затем выполняется ин-

 

 

 

 

 

0

1

0

1

0

 

1

1

 

0

версия. Вычисления

автоматизируются

 

в

 

 

 

электронных таблицах (Приложение 1).

 

 

 

 

 

0

1

1

1

0

 

0

0

 

1

Для того чтобы описать

f 1 ,

f 2 ,

 

f 3

 

 

1

0

0

1

0

 

1

1

 

0

 

 

 

1

0

1

1

0

 

0

0

 

1

с помощью комбинации функций - связок,

 

 

 

есть несколько подходов. Например, в та-

 

 

1

1

0

1

0

 

0

0

 

1

блице истинности для каждого

 

 

 

 

 

 

 

 

 

 

 

1

1

1

1

1

 

0

1

 

1

единичного значения функции

 

Таблица 9. Синтез ДНФ для

 

f 1

записывают

конъюнкцию

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

y

 

z

 

 

x

y

z

 

x y z

 

x

y

z

 

 

входных переменных или ин-

 

 

 

 

 

 

 

 

0

0

 

 

0

 

 

 

0

 

 

0

 

 

0

 

 

0

версий входных

переменных

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

 

 

1

 

 

 

1

 

 

0

 

 

0

 

 

1

так, чтобы на данном наборе

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

 

 

0

 

 

 

0

 

 

1

 

 

0

 

 

1

значений

 

входных

перемен-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

 

 

1

 

 

 

0

 

 

0

 

 

0

 

 

0

ных результат

конъюнкции

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

 

 

0

 

 

 

0

 

 

0

 

 

1

 

 

1

принял

единичное

значение

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

 

 

1

 

 

 

0

 

 

0

 

 

0

 

 

0

(Таблица 9). Такая конъюнк-

 

 

 

 

 

 

 

 

 

 

 

 

ция называется

конъюнктив-

 

1

1

 

 

0

 

 

 

0

 

 

0

 

 

0

 

 

0

 

 

 

 

 

 

 

1

1

 

 

1

 

 

 

0

 

 

0

 

 

0

 

 

0

18

ным одночленом или минтермом и принимает единичное значение только на рассмотренном для неё наборе, в остальных случаях её значение будет нулевым. Для каждого набора входных значений, где в результате получается единица, необходимо создать соответствующий минтерм. В данном случае для первой функции получим три минтерма, каждый из которых включает по три переменных: x y z , x y z , x y z . Для остальных функций – по четыре минтерма. После этого, все полученные минтермы объединяются операцией дизъюнкции. В результате единица появляется тогда, когда один из минтермов принимает единичное значение, в свою очередь, единичное значение каждый минтерм принимает только для своего набора значений входных переменных. Такой способ задания логической функции называется дизъюнктивной нормальной формой (ДНФ). В итоге: f 1=x y z x y z x y z . Так логическая функция трёх переменных описана с помощью одноместной и двуместных операций: отрицания, конъюнкции и дизъюнкции. Аналогично

f 2=x y z x y z x y z x y z , f 3=x y z x y z x y z x y z . Пользуясь тем, что дизъюнкция принимает нулевое значение

только на одном входном наборе, можно описать все нули дизъюнктивными одночленами (макстермами), и полученные дизъюнкции объединить конъюнкцией – получим конъюнктивную нормальную форму (КНФ). Например, КНФ для f 2 (Таблица 10):

f 2= x y z x y z x y z x y z . Очевидно, КНФ выгоднее ДНФ, когда количество нулей меньше количества единиц.

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

переменных.

 

Набор

Таблица 10. Синтез КНФ для

f 2

 

операций,

обладаю-

x y z x y z

x y z

x y z

x y z

щий таким свойством,

называется

функцио-

0 0 0

0

1

1

1

0

нально

полным

бази-

0 0 1

1

1

1

1

1

сом. Использованный

0 1 0

1

1

1

1

1

нами

базис

не

0 1 1

1

0

1

1

0

единственный, наибо-

1 0 0

1

1

1

1

1

лее известные базисы

1 0 1

1

1

0

1

0

- в Таблице 11.

 

1 1 0

1

1

1

0

0

 

 

 

 

1 1 1

1

1

1

1

1