- •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.7.1 Переполнение разрядной сетки
При сложении чисел с одинаковыми знаками, представленных в форме с фиксированной запятой, может возникнуть переполнение разрядной сетки.
Признаком переполнения разрядной сетки сумматора прямого кода является появление единицы переноса из старшего разряда цифровой части числа.
Пример 1
А=0,1010; В=0,1101. Апр=0,1010 10
+Впр=0,1101 13
Cпр=0,0111 = 7
Получен искаженный результат, из-за потери переноса. Признаком переполнения разрядной сетки сумматора дополнительного кода при сложении положительных чисел является отрицательный знак результата, а при сложении отрицательных чисел - положительный знак результата.
Пример 2 А=0,1011, В=0,1010 Адоп=0,1011 +Вдоп=0,1010
Сдоп=1,0101
Признаком переполнения разрядной сетки сумматора обратного кода является знак результата, противоположный знакам операндов.
Пример 3 А=0,0111, В=0,1101 Аобр=0,0111 +Вобр=0,1101
Собр=1,0100
Знак числа искажен.
Чтобы фиксировать переполнения разрядной сетки в ДСПК, ДСОК, ДСДК, вводится вспомогательный разряд в знаковую часть изображения числа, который называют разрядом переполнения числа. Такое представление числа называется модифицированным (см. рисунок 2.4)
Знак числа
Разряд переполнения
Sg |
Sg |
1 |
2 |
3 |
● ● ● |
n-1 |
n |
Разряд хранения Число в формате ФЗ знака
Рисунок 2.4. Модифицированный код числа
В машинном представлении чисел, представленных в модифицированном коде, используется (n+2) разряда: из них 2 знаковых, запятая опускается, устанавливается постоянный коэффициент формата Кф.
-
Знаковые разряды могут иметь следующие комбинации состояний при любых А и В:
00 - результат числа положительный, переполнения нет;
01 - результат числа положительный, было переполнение;
10 - результат числа отрицательный, было переполнение;.
11 - результат числа отрицательный, переполнения нет.
Пример: 1) 0,1011,В=0,1010. Амд=00.1011 +Вмд=00.1010 Смд=01.0101 =00.10101 = 21
Здесь признаком переполнения является 1 в знаковом разряде. По этому признаку производится сдвиг числа вправо с одновременным увеличением коэффициента формата Кф на +1 и восстановлением (по значению Sg1) знака 00 числа, проверяется нормализация числа (наличие 1 после знака числа).
Пример: 2) А=-0,1011, В=-0,1001. Ампр.=11.1011, Вмпр.=11.1001. Так как оба числа отрицательны и операция сложения выполняется на сумматоре дополнительного кода, то в сумматор числа поступают в дополнительном коде.
Амд=11.0101 +Вмд=11.0111 Смд=10.1100
Переполнение. Необходим сдвиг вправо, для восстановления знака. Смд=11.01100 преобразуем в прямой код. Спр.=11.10100 = -20.
Анализ разрядов знака результата показал, необходимость восстановления его, сдвигая число вправо на один разряд, с одновременным увеличением коэффициента формата Кф на +1. Результат отрицательный, и поэтому, представлен в дополнительном коде. Поэтому, число преобразуется в прямой код.