- •Основы компьютерной арифметики и логики
- •Предисловие
- •Глава 4, подготовленная доцентом о.П. Шафеевой, посвящена вопросам разработки алгоритмических моделей выполнения арифметических операций и моделирования на пэвм спроектированных алгоритмов.
- •Основы двоичной компьютерной арифметики
- •1.1. Позиционные системы счисления
- •Десятичная позиционная система счисления
- •Двоичная позиционная система счисления
- •1.1.3. Восьмеричная позиционная система счисления
- •1.1.4. Шестнадцатеричная позиционная система счисления
- •Сложение Вычитание
- •Перевод чисел из одной позиционной системы счисления в другую
- •1.2.1. Перевод целых чисел
- •1.2.2. Перевод правильных дробей
- •1.2.3. Перевод неправильных дробей из одной системы счисления в другую
- •1.2.4. Частный случай перевода чисел из одной системы счисления в другую
- •1.2.5. Перевод чисел из одной системы счисления в другую с использованием промежуточной двоично-десятичной системы
- •1.3. Представление чисел с фиксированной запятой (точкой)
- •1.4. Представление чисел с плавающей запятой (точкой)
- •1.5. Коды двоичных чисел
- •1.5.1. Прямой код
- •1.5.2. Обратный код
- •1.5.3. Модифицированный обратный код
- •1.5.4. Дополнительный код
- •2.1.1. Алгебраическое сложение чисел в дополнительном коде
- •2.1.2. Алгебраическое сложение чисел в обратном коде
- •2.1.3. Переполнение разрядной сетки при сложении чисел
- •2.2. Сложение (вычитание) двоичных чисел с плавающей запятой
- •2.2.1. Метод ускоренного сложения двоичных чисел с запоминанием переносов
- •2.3. Умножение двоичных чисел с фиксированной запятой
- •2.4. Машинные технологии выполнения операции умножения двоичных чисел с фиксированной запятой
- •2.5. Умножение двоичных чисел с плавающей запятой
- •2.6. Методы ускоренного выполнения операции умножения двоичных чисел
- •2.6.1. Метод пропуска такта суммирования
- •2.6.2. Метод анализа сомножителей
- •2.6.3. Метод расшифровки и одновременного умножения на два разряда множителя
- •2.6.4. Метод ускоренного умножения Мак-Сорли
- •2.6.5. Метод ускоренного умножения Лемана
- •2.6.6. Метод умножения с расшифровкой пар разрядов множителя и запоминанием переносов
- •2.7. Деление двоичных чисел с фиксированной запятой
- •2.8. Деление двоичных чисел с плавающей запятой
- •3. Основы десятичной компьютерной арифметики
- •3.1. Машинное кодирование десятичных чисел
- •3.2. Выполнение арифметических операций с десятичными числами
- •3.2.1. Сложение десятичных чисел в эвм
- •3.2.2. Умножение десятичных чисел в эвм
- •3.2.3. Ускорение умножения в -кодах
- •Деление десятичных чисел в эвм
- •4.2. Моделирование алгоритма сложения двоичных чисел
- •Различные случаи ненормализованных мантисс
- •4.3. Проектирование алгоритма умножения чисел
- •4.5. Проектирование алгоритма деления чисел
- •4.7. Разработка алгоритма вычисления квадратного корня
- •Определение 1. Пусть и произвольные множества. Соответствием называется тройка множеств
- •Свойства отношений
- •Эквивалентность
- •Толерантность
- •Отношения порядка
- •Самодвойственные функции
- •Монотонные функции
- •Линейные функции
- •Функции, сохраняющие константу
- •5.2.7. Минимизация булевых функций
- •Метод Блейка
- •Метод Квайна-Мак-Класки
- •Минимизация с использованием карт Карно
- •Дана функция четырех переменных (рис. 5.13):
- •Минимизация не полностью определенных булевых функций
- •Минимизация систем булевых функций
- •5.3. Методика синтеза комбинационных схем на логических элементах
- •5.3.1. Логические элементы
- •5.3.2. Общий алгоритм построения комбинационных схем
- •5.3.3. Синтез кс в классическом базисе
- •5.3.4. Синтез кс в базисах «и-не», «или-не»
- •5.3.5. Реализация кс в базисе Жегалкина
- •5.3.6. Синтез составных кс
- •Заключение
- •Библиографический список к главам 1, 2, 3, 4
- •Библиографический список к главе 5
Минимизация с использованием карт Карно
Для минимизации булевых функций вручную удобно применять так называемые карты Карно. Карты Карно позволяют графически представить булеву функцию и обеспечивают наглядность процесса минимизации. На рис. 5.10 приведена карта Карно для функции трех переменных, с краев карты помечаются области, соответствующие истинным значениям некоторой переменной, остальная область соответствует ложным значениям данной переменной.
х2
x1
-
1
х3
Рис. 5.10. Области карты Карно
На рис. 5.10 заштрихованная область со штрихом с наклоном влево соответствует истинным значениям х1, где отсутствует данная штриховка значения х1-ложные; заштрихованная область со штрихом с наклоном вправо соответствует истинным значениям х2, в остальных ячейках карты значения х2- ложные. Изображенная на рисунке единица соответствует вершине гиперкуба .
Карта Карно представляет прямоугольник, образованный одинаковыми ячейками. В общем случае карта строится по следующим правилам.
Число ячеек карты соответствует всем возможным комбинациям входных аргументов булевой функции, т.е. равно 2k, где - число аргументов.
Каждая переменная делит карту на две равные непрерывные области: область истинных значений и область ложных значений. Для разных переменных области не должны совпадать. При этом считается, что края карты склеены, т.е., например, первая и последняя ячейки строки являются соседними.
При минимизации функции с помощью карт Карно поступают следующим образом.
Минимизируемую функцию представляют на карте Карно, для этого помечают единицами ячейки карты, соответствующие 0-кубам.
Отыскивают группы смежных единиц с числом единиц в группе 2, 4, 8, …, 2m, где m=1, 2, 3,… . Две смежные единицы образуют 1-куб, четыре смежные единицы – 2-куб, восемь смежных единиц 3-куб и т.д. Одна, одиночная единица соответствует 0-кубу.
Отдавая предпочтение группам с небольшим количеством единиц, пытаются покрыть все единицы минимальным количеством групп. Группы могут пересекаться. Следует учитывать, что края карты считаются склеенными. По найденному покрытию записывается минимальная форма как дизъюнкция -кубов, соответствующих выделенным группам смежных единиц.
Пример 5.20.
Функция трех переменных задана в СДНФ и представлена на карте Карно (рис. 5.11).
х2
x1
х3
|
1 |
1 -1 |
|
1 3 |
2 1 |
|
3 1 |
Рис. 5.11. Определение групп смежных единиц
В данном случае можно выделить три группы по две смежные единицы, которые покрывают все вершины гиперкуба. 1-я группа соответствует истинным значениям переменных х1 и х3 (переменная х2 в одной единице группы истинна, в другой – ложна), следовательно, соответствует терму минимальной формы х1 х3, аналогично 2-я группа соответствует х2 х3 и 3-я группа (3-я группа построена с учетом склеивания краев карты Карно).
.
Пример. 5.21. (рис. 5.12).
х2
х1
-
1
1
1
1
х3
Рис. 5.12. «Одиночная» единица
В данном случае одна единица не имеет смежных, поэтому минимальная форма содержит 0-куб.
.
Пример 5.22.