- •2.2 Прямой код отрицательных чисел
- •2.2 Обратный код числа
- •2.2.1 Переход от обратного кода к прямому
- •2.3 Дополнительный код числа
- •2.4 Сложение чисел, представленных в форме с фиксированной запятой, на двоичном сумматоре прямого кода
- •2.5 Cложение чисел на двоичном сумматоре дополнительного кода
- •2.6 Сложение чисел на сумматоре обратного кода
- •2.7 Модифицированные бинарные коды
- •2.7.1 Переполнение разрядной сетки
- •2.7.2 Модифицированное сложение чисел в формате с плавающей точкой
- •2.7.3 Сложение чисел при разных значениях порядков
- •Задание
2.7.2 Модифицированное сложение чисел в формате с плавающей точкой
Числа, представленные в формате с плавающей точкой имеют две части – мантиссу и порядок. Поэтому, операция алгебраического сложения выполняется отдельно над мантиссой и над порядком. Следовательно, в цифровом автомате может быть два суммирующих устройства, для мантиссы и для порядка.
Для чисел с плавающей точкой справедливо условие нормализации:
q-1< | mA| < 1 (2.2),
где q - основание системы счисления; mA - мантиссы числа.
Это нормализованное представление числа, и оно требует, чтобы в старшем разряде мантиссы двоичного числа стояла единица. Для двоичной системы это будет означать, что мантисса всегда находится в пределах:
0,5≤ |mA|< 1 (2.3)
При выполнении автоматом операций над числами, нормализуют как входные слагаемые, так и выходной результат.
Операция нормализации числа состоит из условия нормализации (2.2) и осуществляется методом сдвига мантиссы числа в ту или иную сторону. Сдвиги могут производиться влево или вправо в пределах разрядной сетки машины по правилам представленных моделью таблицы 2.2.
Сдвиги кодов числа с одним разрядом знака Таблица 2.2
Исходное число |
Сдвиг влево на один разряд (от порядка вычитается -1) |
Сдвиг вправо на один разряд (к порядку +1) |
0, a1, a2,…,an 1, a1, a2,…,an |
a1, a2,…,an 0 a1, a2,…,an |
0,0, a1, a2,…,an-1 0,1 a1, a2,…,an-1 |
Модифицированный сдвиг - операция над модифицированным изображением числа, выполняется по модели таблицы 9.2.
Сдвиги модифицированных чисел Таблица 2.3
Исходное число |
Сдвиг влево на разряд (от порядка вычитает -1 ) |
Сдвиг вправо на разряд (к порядку добавляет+1) |
00. a1, a2,…,an 01. a1, a2,…,an 10. a1, a2,…,an 11. a1, a2,…,an |
0 a1, a2,…,an 0 1 a1, a2,…,an 0 0 a1, a2,…,an ε 1 a1, a2,…,an ε |
00.0 a1, a2,…,an-1 00.1 a1, a2,…,an-1 11.0 a1, a2,…,an-1 11.1 a1, a2,…,an-1 |
Величина ε зависит от кода. Для дополнительного кода ε = 0, для обратного кода ε = 1.
При сложении чисел, результат сложения может выйти из нормализации как справа уравнения (2.2) так и слева.
Обозначим через γ - признак нарушения нормализации числа справа, указывающий на необходимость сдвига числа вправо на один разряд для восстановления знака числа. Признаком нарушения нормализации числа слева δ (когда результат по абсолютной величине оказывается меньше 1/q ) является наличие одинаковых комбинаций в разряде переполнения и старшем разряде цифровой части сумматора.
Итак, рассмотрим сложение чисел А = mApA и В = mBpB имеющих одинаковый порядок pA=pB Обе мантиссы удовлетворяют условию нормализации.
Сложение мантиссы осуществляют на сумматоре ДСДК или ДСОК по правилу сложения чисел аналогично в формате с фиксированной запятой. Если после сложения мантисса результата удовлетворяет условию нормализации (т.е. δ = 0, γ=0), то к этому результату приписывается порядок любого из операндов. В противном случае производится нормализация числа.
Пример1. Найти сумму чисел А=0,1000*2-3 и В=-0,1011*2-3
Мантиссы и порядок обрабатываются на ДСДК.
[mА]доп=00,1000 [РА]Д=1,101
+[mВ]доп=11,0101 [РВ]Д=1,101
[mс]доп=11,1101
Здесь δ =1, γ=0. Значить, необходим сдвиг мантиссы влево на 1разряд.
[m'c]=11,1010 Проверяем. Снова δ=1, γ=0. Значить, необходим еще сдвиг влево на 1 разряд.
[m"c]доп. 11, 0100 Проверяем. Все в порядке δ= 0, γ=0.
Одновременно со сдвигом нужна коррекция порядка на –2(10)=1.010(2) (что равносильно прибавлению дополнительного кода 1.110).
[РС]Д=1.101
+ [∆РС]Д=1.110 [∆РС]пр=1.010
[Р’’C]Д=1.011 РС пр=-1.101
тогда число равно: [m’’с]доп=11.0100
[m’’с]обр=11.1011
+00.0001
11.1100
Спр=11.1100*2-5=11.11000000.11.0101 для 16 разрядной ЭВМ