Слайд 2
Прямой код. Возможны два варианта изображения знаков чисел
двоичными цифрами:
«+» обозначать «0», а «-» обозначать «1»;
«+» обозначать
«1», а «-» обозначать «0».
Оба варианта равноценны.
На практике в основном используется первый вариант.
При таком решении все положительные числа имеют вид: 0, . . . , а отрицательные: 1, ... . В данном случае знаковая цифра (код знака) помещается слева от запятой на место разряда с весом 2°. Если знак и цифровую часть числа рассматривать как единое целое, то изображение положительных чисел не изменяется и определяется интервалом 0 ≤ х < 1, а все отрицательные числа изображаются положительными числами [х]пк, расположенными в интервале 1 ≤ [х]пк<2. Рассмотренную связь между числом х и его изображением в прямом коде — [х]пк можно представить в виде:
Слайд 3
Прямой код
Хпк = ЗнХ.|X|
Примеры: +510 = 0.1012пк
-510 =
1.1012пк
Слайд 4
Методика выполнения алгебраического сложения, рациональная для применения в
ЭВМ, должна удовлетворять следующим условиям:
обработка знаковых и цифровых разрядов
суммируемых чисел X и Y должна производиться по одинаковым правилам с получением при этом правильного знака суммы;
должна исключаться операция прямого вычитания, и вместо неё алгебраическое суммирование чисел разных знаков должно выполняться как сложение специальных кодов суммируемых чисел;
должно определяться переполнение, соответствующее
| X + Y | ≥ 1 при условии, что абсолютное значение X и Y меньше единицы.
Всем указанным условиям удовлетворяет методика алгебраического сложения дополнительных и обратных кодов исходных чисел.
Слайд 5
Обратный код. В этом коде связь между числом
х и его изображением в обратном коде — [х]ок
определяется равенством:
При х ≤ 0: 2 + х – 2-n = 2 - |x| - 2-n.
_10.00...00 2
00.00...01 2-n
1.11...11 2 - 2-n
_1.1 1 ... 1 1 2 - 2-n
0.x1x2...xn-1xn |x|
2 - |x| - 2-n
Таким образом, для отрицательного числа получение обратного кода заключается в присвоении знаковому разряду кода 1 и замене 0 на 1, а 1 на 0 (выполняется ) в цифровой части числа.
При обратном преобразовании (от обратного кода к прямому) от обратного кода берется обратный код.
Слайд 6
Методика алгебраического суммирования в обратном коде
при представлении
исходных чисел и суммы в прямом коде
Возможные комбинации, которые
могут встретиться при операции сложения.
1). Х>0 и Y>0, а X + Y<1. В данном случае обращение к обратному коду не приводит к специфике выполнения операции, так как [Х>0]о + [Y>0]о = X + Y.
2). Х>0, Y<0 и X + Y>0.
[Х]ок + [Y]ок = X + 2 + Y - 2-n – предварительный результат.
Т.к. X + Y>0, то.действительный результат равен X + У. Для того чтобы от предварительного результата перейти к действительному, необходима коррекция: вычесть 2 и прибавить 2-n к предварительному результату, т.е. в предварительном результате исключается 1 в разряде с весом 21, что равноценно вычитанию 2, и эту же единицу направляем в младший разряд предварительного результата, что равноценно прибавлению 2-n.
[Х]0 + [У]0 = X + (2+Y - 2-n).
Этот результат соответствует правильному, так как согласно условию
X + Y<0 и [X + У<0]о = 2 +(X + У) - 2-n.
4) Х<0, У<0 и |Х + У|<1.
[X]ОК + [Y]ок = (2 + X - 2-n ) + (2 + Y -2-n ) - предварительный результат.
Правильный результат [(X + У)<0]ок = 2+Х + Y - 2-n.
Это определяет необходимость выполнения коррекции предварительного результата, которая аналогична рассмотренной в случае 2, т.е. вычесть 2 и прибавить 2-n к предварительному результату.
Слайд 8
При суммировании в обратном коде чисел разных знаков
возможно получение X + Y = 0. Здесь методика
суммирования обратных кодов исходных чисел не изменяется, а результат получается в виде 1,1 . . .1. Например,
[Х]пк = 0,1011 [Х]ок = 0,1011
[Y]пк = 1,1011 [Y]ок= 1,0100
[Х + Y]0=1,1111
Получили обратный код отрицательного нуля [- 0,0 . . . 0 ]0 = 1,1 ... 1. Такой результат согласуется с формулой, где указано, что X = 0 может иметь двоякое изображение: код положительного нуля и код отрица-тельного нуля.
Слайд 9
Дополнительный код. Здесь связь между числом X и
его изображением в дополнительном коде [Х]дк определяется равенством:
Получение дополнительного
кода отрицательного числа осуществляется в соответствии с равенством:
[-0, х1. . .хnк]дк = = [-0, х1. . .хnк]ок +2-n
Обратное преобразование отрицательного числа (от дополнительного к прямому) выполняется следующим образом:
Например [[- 0,1101]Д = 1,0011]д = 1,1101, т. е. от дополнительного кода берется дополнительный код.
[[-0, х1. . .хn]дк
Слайд 10
Методика алгебраического суммирования в дополнительном коде при представлении
исходных чисел и суммы в прямом коде.
Рассмотрим четыре
случая:
1) Х>0, F>0, a X + У<1. Как и при обратном коде, суммирование дополнительных кодов не вносит каких-либо изменений в операцию сложения.
2) Х>0, Y<0 и Х+Y>0.
[Х]дк + [Y]дк = X + 2 + Y – предварительный результат.
Правильный результат при Х+Y>0 равен X + Y .
Выполняется коррекция, равная вычитанию 2 из предварительного результата (исключение в нем 1 с весом 21).
Методика выполнения операции не изменяется, когда [Х]дк + [У]дк = 0. Например,
[Х]пк = 0,1100 [Х]дк = +0,1100
[У]пк= 1,1100 [У]дк = 1,0100
0,0000
+ [Y]дк = X + (2 + Y) =
2 + (X + Y)
дает правильный результат без коррекции.
4). Х<0, Y<0 и |Х+Y|<1.
[Х]дк+ [Y]дк = (2 + Х) + (2 + Y) = 2 + 2 + X + Y ,
получаем результат, который отличается от правильного
[(X + Y)<0]дr = 2 + (X + Y) на 2.
Необходима и здесь коррекция, рассмотренная в случае 2, т.е. вычитание 2 из предварительного результата (исключение в нем 1 с весом 21).
Слайд 12
Достоинства операций суммировании чисел в обратном и дополнительном
кодах:
обработка знаковых и цифровых разрядов чисел -осуществляется по одинаковым
правилам, и при этом автоматически получается правильный знак результата;
исключена операция прямого вычитания
Недостаток — невозможно фиксировать переполнение.
Слайд 13
Модифицированные дополнительный и обратный коды и их использование
в операции алгебраического суммирования
В модифицированных кодах кодирование знака осуществляется
2-мя разрядами:
«+» кодируется как «00»
«-» кодируется как «11».
При этом изображение числа X в этих кодах определяется равенствами: