- •Министерство образования и науки украины
- •Содержание
- •Глава 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 Граф-схемы алгоритмов
3.5. Погрешности представления чисел
Как уже отмечалось, представление числовой информации в цифровом автомате, как правило, влечет за собой появление погрешностей (ошибок), величина которых зависит как от формы представления чисел, так и от длины разрядной сетки цифрового автомата, т.е. компьютера. Следовательно, при переводе чисел из одной системы счисления в другую неизбежно возникают погрешности.
Абсолютная погрешность представления- эторазность между истинным значением входной величины А и ее значением, полученным из машинного изображения Ам, т.е.
[A] =A-Aм
Тогда относительная погрешность представления равна:
[A] = [A]/Av
Максимальная погрешность перевода десятичной информации в двоичную не превышает единицы младшего разряда разрядной сетки цифрового автомата. Минимальная погрешность перевода равна нулю.
Усредненная абсолютная погрешностьперевода чисел в двоичную систему счисления будет равна:
[A]c= 0,52-nдля дробей и
[A]c= 0,520для целых чисел
Для представления чисел в форме с фиксированной запятой абсолютное значение машинного изображения числа лежит в пределах:
2-n[A]ф1 - 2-nдля дробей и
20 [A]ф2n- 1 для целых чисел
Следовательно, относительные погрешности представления для ми-нимального значения числа равны:
для дробей и
для целых чисел.
Аналогично для максимального значения:
для дробей и
для целых чисел.
Как видим погрешности представления малых чисел в форме с фиксированной запятой могут быть очень значительными.
Для представления чисел в форме с плавающей запятой абсолютное значение мантиссы лежит в пределах
2-1 |[mA]n| 1 - 2-n.
Так как погрешность представления числа зависит только от разрядности мантиссы, то для нахождения погрешности представления числа в форме с плавающей запятой величину этой погрешности надо умножить на величину порядка числа p:
и
=
где n- количество разрядов для представления мантиссы числа. Из последней формулы следует, что относительная точность представления чисел в форме с плавающей запятой почти не зависит от величины числа.
Глава 4. Арифметические действия с двоичными числами
4.1. Сложение двоичных чисел
Арифметические операции можно выполнять с двоичными числами, представленными в прямом, обратном и дополнительном коде. Если операнды представлены в прямом коде и имеют одинаковые знаки, то над ними при алгебраическом сложении естественно выполняется процедура сложения. Если же операнды имеют разные знаки - процедура вычитания. Как уже отмечалось, для упрощения аппаратных средств компьютера процедура вычитания заменяется сложением благодаря тому, что отрицательный операнд представляется в обратном или дополнительном коде.
4.1.1. Алгебраическое сложение чисел, представленных в форме с фиксированной запятой
Структурные схемы двоичных сумматоров, предназначенных для выполнения алгераического сложения чисел представленных в обратном и дополнительном кодах приведены на рисунке 4.1 в) и б) соответственно, а на рисунке 4.1 а) - для арифметического сложения чисел, представленных в прямом коде. На этих рисунках символами Sgобозначаются значения знаковых битов операндов и результата.
а)
a1 SM c1 a2 SM c2 an SM cn Sga SM
b1 b2 bn
P0 P1 P2 Pn-1
1 2 n
б)
a1 SM c1 a2 SM c2 an SM cn Sga SM
b1 b2 bn Sgb
P0 P1 P2 Pn-1 Pn
1 2 n
в)
a1 SM c1 a2 SM c2 an SM cn Sga SM
b1 b2 bn Sgb
P0 P1 P2 Pn-1 Pn
1 2 n
Рис. 4.1
При сложении двух чисел, представленных в обратном или дополнительном коде, их знаковые разряды складываются аналогично цифровым, причем возможен перенос единицы из старшего цифрового разряда в знаковый.
Если оба операнда представлены в прямом коде и имеют одинаковые знаки, то над такими операндами выполняется процедура сложения и результату присваивается знак исходных операндов.
Рассмотрим примеры:
1) 210 + 410 = 610 2) -210 - 410 = -610
0. 0010 а) 1. 1110 б) 1. 1101
+ 0. 0100 +1. 1100 + 1. 1011
0. 0110 = 610 1 1. 1010 = -610 1 1. 1000
+1 коррекция
1. 1001 = -610
Во втором примере оба отрицательных слагаемых представлены либо в дополнительном коде (а), либо в обратном коде (б). В первом случае результат получен в дополнительном коде, а во втором, после коррекции, - в обратном.
Если же операнды имеют разные знаки, то должна выполняться процедура вычитания. Но, как уже отмечалось, процедуру вычитания заменяют процедурой сложения, отрицательный операнд (вычитаемое) представляют в обратном или дополнительном коде, а положительный операнд - в прямом коде.
Например:
1) 410 - 210 = 210
а) 0. 0100 б) 0. 0100
+ 1. 1110 + 1. 1101
1 0. 0010 = 210 1 0. 0001
+1 коррекция
0. 0010 = 210
2) 410 - 410 = 0
а) 0. 0100 б) 0. 0100
+ 1. 1100 + 1. 1011
1 0. 0000 = 010 1. 1111
+1 коррекция
1 0. 0000 = 010
3) 210 - 410 = -210
а) 0. 0010 б) 0. 0010
+ 1. 1100 + 1. 1011
1. 1110 = -210 1. 1101 = -210 коррекции нет.
В примерах 1а) и 2а) единица, выходящая за разрядную сетку, не учитывается ("теряется").
Как видно из примеров процедура алгебраического сложения с дополнительными кодами проще, чем с обратными кодами, т.к. в последнем случае при возникновении единицы переноса за пределы разрядной сетки, выделенной для числа в формате с фиксированной запятой, приходится корректировать результат с помощью дополнительной процедуры прибавления единицы к результату. Нулевой результат получается или в прямом коде или же в обратном, что также требует коррекции результата. Поэтому в настоящее время на практике для представления отрицательных операндов используется в основном дополнительный код.
Таким образом, перед выполнением самой процедуры алгебраического сложения в дополнительном коде нужно проанализировать знаки слагаемых. Если они разные, то выполняется алгебраическое сложение (фактически вычитание) без проверки на переполнение результата, т.к. его в этом случае просто не может быть. Но контролируется чтобы в результате не появился запрещенный отрицательный ноль. Если же у исходных операндов знаки одинаковы, то такой же знак предварительно присваивается результату и выполняется само сложение. Если знак окончательного результата не совпадает с предварительно присвоенным знаком, то это является признаком переполнения и следовательно, неправильного результата.
Еще раз подчеркнем, что результат алгебраического сложения операндов представленных в обратном и дополнительном кодах получается также в обратном и дополнительном коде соответственно.