- •Министерство образования и науки украины
- •Содержание
- •Глава 1 Арифметико-логические основы эвм
- •1.1 Информационные процессы
- •1.2. Обмен информацией между различными информационными устройствами
- •1.3. Аппаратные средства хранения и обработки информации
- •Глава 2 представление числовой информации в цифровом автомате
- •2.1. Системы счисления и понятие кода
- •2.2. Выбор системы счисления
- •2.3. Формальные правила двоичной арифметики
- •2.4. Перевод числа из одной позиционной системы счисления в другую
- •Глава 3 формы представления чисел в цифровых автоматах
- •3.1. Форма представления двоичных чисел с фиксированной запятой
- •3.2. Представление отрицательных чисел в формате с фиксированной запятой
- •3.3. Форма представление чисел с плавающей запятой
- •3.4. Перевод чисел из формата с фиксированной запятой в формат с плавающей запятой и обратно
- •3.5. Погрешности представления чисел
- •20 [A]ф2n- 1 для целых чисел
- •Глава 4. Арифметические действия с двоичными числами
- •4.1. Сложение двоичных чисел
- •4.1.1. Алгебраическое сложение чисел, представленных в форме с фиксированной запятой
- •4.1.2. Переполнение разрядной сетки
- •4.1.3. Модифицированный прямой, обратный и дополнительный код
- •4.1.4. Алгебраическое сложение чисел, представленных в форме с плавающей запятой
- •4.2. Умножение двоичных чисел
- •4.2.1. Методы умножения двоичных чисел
- •4.2.2. Умножение чисел, представленных в форме с фиксированной запятой
- •4.2.3. Умножение чисел, представленных в форме с плавающей запятой
- •4.2.4. Ускорение операции умножения
- •4.3. Деление двоичных чисел
- •4.3.1. Деление двоичных чисел, представленных в форме с фиксированной запятой.
- •4.3.2. Деление двоичных чисел, представленных в форме с плавающей запятой.
- •4.4. Оценка точности выполнения арифметических операций
- •4.4.1. Погрешность округления
- •Глава 5. Выполнение операций над двоично-десятичными числами
- •5.1. Представление десятичных чисел в д-кодах
- •5.2. Формальные правила поразрядного сложения в д-кодах
- •5.3. Представление отрицательных чисел в д-кодах
- •5.4. Выполнение операций сложения и вычитания в д-кодах
- •5.5. Умножение чисел в д-кодах
- •5.6. Деление чисел в д-кодах
- •5.7. Перевод чисел из д-кода в двоичный и из двоичного в д-код
- •Глава 6 Информационные основы цифровых автоматов
- •6.1. Понятие об информации и её преобразованиях
- •6.2. Преобразования алфавитной информации
- •6.3 Понятие об алгоритме
- •6.4 Понятие о дискретном (цифровом) автомате
- •Глава 7 Основы логического проектирования ца. Основные понятия алгебры логики.
- •7.1. Свойства элементарных функций алгебры логики
- •7.2. Аналитическое представление функций алгебры логики
- •7.3. Совершенные нормальные формы
- •7.4. Системы функций алгебры логики
- •7.5. Числовое и геометрическое представление фал
- •Глава 8 Минимизация функций алгебры логики
- •8.1 Метод Квайна
- •Ядро: мднф:
- •8.2 Метод Квайна-Мак-Класки
- •Простые импликанты: *111, 111*, 0**1
- •8.3 Метод Нельсона
- •8.4 Метод диаграмм Вейча
- •8.5 Метод самопонижающихся циклов
- •8.6 Минимизация монотонных функций
- •8.7 Минимизация конъюнктивных нормальных форм
- •8.8 Минимизация частично определенных булевых функций
- •8.9 Минимизация функций в базисах и-не и или-не
- •8.10 Минимизация систем булевых функций
- •Глава 9 Абстрактная теория автоматов
- •9.2 Декомпозиция абстрактных автоматов
- •Глава 10 Структурная теория автоматов
- •10.1 Композиция автоматов
- •Глава 11 Проектирование асинхронных цифровых автоматов
- •11.1 Проектирование комбинационных схем (кс) с учетом кобъед по входу и по выходу
- •11.2 Проектирование кс на дешифраторах и мультиплексорах
- •11.3 Проектирование кс на пзу
- •11.4 Проектирование кс на плм
- •Глава 12 Канонический метод структурного синтеза ца с памятью
- •12.1 Кодирование
- •12.2 Выбор элементов памяти автомата
- •12.3 Выбор структурно-полной системы элементов
- •12.4 Построение уравнений булевых функций возбуждения и выходов автомата
- •12.5 Построение функциональной схемы автомата
- •Глава 13 Обеспечение устойчивости функционирования ца
- •13.2 Проблема синтеза надёжных схем из ненадёжных элементов
- •13.3 Коды Хэмминга
- •Глава 14 Микропрограммные автоматы
- •14.2 Граф-схемы алгоритмов
4.3.2. Деление двоичных чисел, представленных в форме с плавающей запятой.
При операции деления чисел, представленных в форме с плавающей запятой их мантиссы делятся, как числа с фиксированной запятой, а порядки вычитываются. В обоих случаях проверка на переполнение обязательна. Но, т.к. реально вычитываются характеристики чисел, то деление выполняется по следующей формуле:
A1 :A2 =m12:m22= (m1 :m2)2.
Знак ответа определяется обычным образом. Если ответ получился ненормализованный, то выполняется процедура нормализации и округления ответа.
Т.к. мантиссы операндов нормализованы, то возможны случаи, когда
|mA| |mB|; |mA| < |mB|.В первом случае перед началом деления надо вычесть делитель из делимого и в целую часть мантиссы частного записать 1. Затем продолжать делить числа обычным методом.После получения частного очевидно, что оно не будет нормализованным. Значит надо нормализовать частное, т.е. в данном случае сдвинуть его на 1 разряд вправо, а к порядку частного добавить 1.
Напомним, что при реализации алгоритмов математических операций в формате с плавающей запятой каждый раз, когда осуществляется та или иная процедура, затрагивающая характеристики операндов или результата, производится контроль над переполнением и исчезновением порядка, т.е. контролируется условие
0 r rmax ,
где rmax = l + pmax .
Рассмотрим пример:
A = 10 = 0,1010, pA = 4, B = 2 = 0,1, pB = 2. p = pA - pB = 2. mA = 0.1010,
mB= 0.1 , (mB)l= 1.1000. |mA| > |mB|. При первом вычитанииmBизmA1 записываем в целую часть частного:
0.1010
+ 1.1000
а0 0.0010 С = 1,XX, далее, будем делить методом деления без восстановления остатка.
2а0 0.0100
+ 1.1000
а1 1.1100 а1<0 С = 1,0
2a1 1.1000
+ 0.1000
0.0000 a2 = 0 С = 1,01, сдвигаем вправоС = 0,101, p = p + 1 = 3.
В завершение обзора принципов организации арифметических действий с двоичными числами нужно отметить, что в Главе 11 подробно рассмотрены все алгоритмы арифметических процедур с числами в формах с фиксированной и плавающей запятой.
4.4. Оценка точности выполнения арифметических операций
Как уже неоднократно отмечалось, для представления чисел в любой форме в компьютере отводится конечная длина разрядной сетки. Поэтому числа, в общем случае, из-за неизбежных процедур округления, представляются с некоторой погрешностью. В связи с этим вычисления в компьютере выполня-ются с погрешностью, которая в некоторых случаях может существенно накапливаться.
Пусть величины А и В заданы с абсолютными погрешностями А и В:
А = [A] А, В = [B] В= где [A] и [B] - машинное представление чисел А и В. Тогда, как нам уже известно, относительные погрешности представления этих чисел будут равны:
A= A/ |A| иB = B/ |B|.
Можно показать, что относительная погрешность алгебраической суммы будет равна:
,
относительная погрешность произведения:
AB= |A| + |B|,
а относительная погрешность частного:
A/B= |A| + |B|,
Из приведенных соотношений видно, что операция умножения и деления незначительно увеличивают относительную погрешность, а вычитание почти равных чисел может сильно ее увеличить. Действительно, если принять, что
= AB, а [A] мало отличается от [B], то
В связи с тем, что величина (А - В) в данном случае мала, а то А-В может быть достаточно большой величиной.
Из-за неизбежных погрешностей машинных вычислений может наблюдаться нарушение некоторых основных законов математики. Например, может не выполняться точно закон ассоциативности для умножения. Закон дистрибутивности, связывающий операции умножения и сложения, может значительно нарушаться, т.е. не будет строго выполняться равенство:
А х (В + С) = (А х В) + (А х С),
а отсюда может возникнуть ситуация, когда
2 х (А2+ В2) < (А + В)2.
Поэтому нужно очень тщательно оценивать конкретные условия вычислений и, при необходимости, переходить к представлению чисел с двойной точностью и принимать различные другие меры, чтобы в какой-то степени исключить влияние накопленной погрешности на результат вычислений.