
- •Глава 2. Формы представления и способы обработки машинных слов в мп сау.
- •2.1 Формы представления чисел в технических устройствах.
- •2.2 Точность и диапазон представления числовой информации в разрядной сетке с фиксированной запятой.
- •2.3 Представление чисел в разрядной сетке с плавающей запятой.
- •2.4 Алгоритмы обработки кодированной информации в арифметических устройствах.
- •2.4.1 Логический алгоритм формирования дополнительного кода отрицательных чисел.
- •2.5 Аксиомы, сопровождающие суммирование дополнительных кодов.
- •2.5.1 Сумматор дополнительных кодов.
- •2.5.2 Алгоритм формирования обратного кода. Арифметические и логические варианты алгоритмов.
- •2.5.3 Сумматор обратных кодов (циклический сумматор), аксиомы обработки обратных кодов.
- •2.5.4 Блок схема суммирования двоичной информации в форме с плавающей запятой
- •2.6 Выполнение длинных операций (* и /) над арифметическими кодами.
2.5.2 Алгоритм формирования обратного кода. Арифметические и логические варианты алгоритмов.
Пусть прямой код операнда Х запишется как: X<0
[X]пр. = 1, Х1, Х2,…, Хi, …,Хn (2.6)
Обратный код отрицательного операнда Х получают инверсией содержимого всех числовых разрядов
(логический алгоритм):
[Х]обр. = 1, Х’1, Х’2, …, Х’i, …, X’n (2.7)
Для Xi = 1 инверсия равна: X’I = 0
Для Xi = 0 инверсия равна: X’I = 1
Для получения арифметического алгоритма образования обратного кода сложим, левые и правые части выражений
(2.6) и (2.7):
[X]пр.+[X]обр. = 10,11…1…1 = 11-1*10-n
[Х]обр. = Х, если Х>0
[Х]обр. = Х – [X]пр.-1*10-n, для Х<0
Арифметический алгоритм образования обратного кода имеет вид:
[X]обр. = Х, для Х≥0
[X]обр. = 11-[X]пр. – 1*10-n, если Х<0
2.5.3 Сумматор обратных кодов (циклический сумматор), аксиомы обработки обратных кодов.
Аксиома 1: Сумма обратных кодов двух операндов X и Y эквивалентна (совпадает) обратному коду их суммы.
[X]обр. + [Y]обр. ≈ [X+Y]обр.
Аксиома 2: Результат суммирования двух операндов на циклическом сумматоре получают в обратном коде, если он отрицательный и в прямом, если он положительный.
Если (X+Y)<0, то [X+Y]обр.
Если (X+Y)≥0, то [X+Y]пр.
Аксиома 3: Если при суммировании операндов │X│<1 и │Y│<1, образуется единица переноса из разряда знака ([X+Y]зн.) эквивалентная Pзн.,
[X+Y]зн.
≈ Pзн.
1*10-n
то эта единица преобразуется в единицу младшего разряда и участвует в окончательном формировании результата как слагаемоее. Цепь, по которой происходит передача этой единицы, называется обратной связью и формируется в циклическом сумматоре.
2.5.4 Блок схема суммирования двоичной информации в форме с плавающей запятой
1
начало
2
Ввод
мантисс операндов: mx,
my
Нормализация
результата
конец
Запись
в память
Нормализован
ли результат операции?
[mx]доп.
+ [my]доп.
Формирование
инверсных кодов mx
и my
Px-Py
Денормализация
mx
Денормализация
my
Px>Py
Ввод
порядков операндов: Px,
Py
Py-Px
3
Да 4 Нет
5 6
7 8
9
10
Нет 11 Да 12
14
13
Реализация данного алгоритма после задания операндов в нормальной форме (Х= ±mx*10±Px; Y= ±my*10±Py) требуют выравнивания порядков в сторону большего.
1/N≤|m|<1
Y= -0,11001100*10110
Px= 1001
-
Py= 110
Px-Py= [11]2=[3]10
[mx]доп.= 010010101000
+ my= -0,00011001100
[my]доп.= 111100110100
[mx+my]пр.= 0,01111011100
Px+y=1001+1=1000
[mx+my]пр.=0,01111011100*101001
X+Y = 0,11110111*101000