Читайте также: |
|
При неправильно подобранном масштабе результат сложения может оказаться больше единицы.
Например: Х=0,101011
У=0,110100
Х+У=1,011111 [1, →(-)]= –0,……
Произошло переполнение разрядной сетки (сумма превысила единицу). Машина может воспринять результат как отрицательный.
Для обнаружения переполнения ввели модифицированный обратный код, отличающийся от обычного обратного кода тем, что под знак числа в нем отводится не один, а два разряда.
Запись чисел в модифицированном коде.
а) для положительного числа:
Х=0,Х1 Х2 Х3… [Х]мобр = 00,Х1 Х2 Х3…
б) для отрицательного числа:
Х= –0,Х1 Х2 Х3… [Х]мобр = 11,Х1 Х2 Х3…
Комбинация знаковых разрядов 01, или 10, будет служить признаком переполнения разрядной сетки.
Тот же пример в модифицированном коде:
Х=00,101011
У=00,110100
Х+У=01,011111
В случае переполнения машина останавливается.
Сложение чисел в модифицированном обратном коде ничем не отличается от сложения в обычном обратном коде.
Сложение чисел в дополнительном коде
Сложение чисел в дополнительном коде происходит аналогично сложению в обратном коде. Разница в том, что единица переноса, образующаяся при сложении знаковых разрядов, отбрасывается.
Пример: Даны два числа: Х=0,101001 и У= –0,001101.
Сложить их в дополнительном коде.
[Х]доп=0,101001
[У]доп=1,110011
[Х+У]доп= 1 0,011100=00,011100
Первую единицу (1) отбрасываем.
6.1.5. Модифицированный дополнительный код.
Как и в модифицированном обратном коде в модифицированном дополнительном предусматриваются два знаковых разряда:
а) для положительного числа:
Х=0,Х1 Х2 Х3… [Х]мобр = 00,Х1 Х2 Х3…
б) для отрицательного числа:
Х= –0,Х1 Х2 Х3… [Х]мобр = 11,Х1 Х2 Х3…
Решим последний пример в модифицированном дополнительном коде:
[Х]доп=00,101001
[У]доп=11,110011
[Х+У]доп= 1 00,011100=00,011100
Первую единицу (1) отбрасываем.
Получаем результат с двумя знаковыми разрядами.
Сложение чисел в машиннах с плавающей запятой
При сложении чисел в машинах с плавающей запятой с начала уравниваются порядки слагаемых, а затем складываются их мантиссы. Порядком суммы является общий порядок слагаемых. Уравнивание порядков заключается в том, что меньший порядок числа увеличивается до большего, при этом соответственно изменяется и мантисса.
Мантиссы складываются в одном из модифицированных кодов. Если после сложения результат оказался ненормализованным, то его нормализуют, изменяя соответственно и порядок.
Пример: Сложить два числа: Х=+0,100100·2100 и У=–0,100101·2110
Проведем вычисления в модифицированном обратном коде.
1. Уравниваем порядки чисел:
Х 0 100100 0 100 (до уравнивания порядков)
X 0 001001 0 110 (после уравнивания порядков)
2. Переведем мантиссы чисел в модифицированный обратный код и сложим их:
Х 00 001001
У 11 011010
Х+У= 11 100011
3. Переведем результат в прямой код:
Х+У= 1 011100 0 110
4. Нормализуем его:
Х+У= 1 111000 0 101
Результат сложения равен: Х+У=-0,111000·2101
Дата добавления: 2015-02-16; просмотров: 359 | Поможем написать вашу работу | Нарушение авторских прав |