Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
10
Добавлен:
17.03.2016
Размер:
180.22 Кб
Скачать

4.1. Действия над числами, представленными в естественной форме (с фиксированной запятой)

При сложении кодов чисел в естественной форме следует учитывать следующие положения:

1) числа хранятся в памяти в дополнительном коде;

2) в сумматоре числа складываются вместе со знаками, при этом образуется знак результата;

3) при сложении чисел с разными знаками единица переноса из знакового разряда стирается, то есть компенсируется одна константа образования дополнительного кода;

4) при сложении чисел с одинаковыми знаками возможно переполнение разрядной сетки, его признаками являются:

а) знак суммы не соответствует знакам слагаемых;

б) переносы из старшего разряда суммы в знаковый и из знакового не согласуются, т. е. один из них есть, а другой отсутствует.

Очевидно, что если переносы согласуются, т. е. оба отсутствуют или оба присутствуют, то переполнение разрядной сетки не происходит.

Пример 3.19. Дано А = 254, В = 175. Найти сумму чисел при разных знаках слагаемых в 16-ти разрядном формате (обычной точности).

Решение.

а) представим исходные числа в двоичной системе счисления

A = 25410 = FE16 = 111111102 В = 17510 = AF16 = 101011112.

б) составим машинные коды этих чисел с разными знаками

[А]пр = 0.000000011111110; [В ]пр= 0.000000010101111.

[-A]доп= 1.111111100000010; [-B]доп= 1.111111101010001.

в) выполнение действий:

С1= А + В С2= А - В

[А]пр = 0.000000011111110 [А]пр= 0.000000011111110

[В]пр= 0.000000010101111 [-B]доп= 1.111111101010001

[C1]пр= 0.000000110101101 > 0 [C2Jпр=10.000000001001111>0

Сз= В - А С4 = -А-В

[В ]пр= 0.000000010101111 [-A]доп= 1.111111100000010

[-A]доп= 1.111111100000010 [-B]доп= 1.111111101010001

[-С3]доп=1.111111110110001<0 [-С4]доп =11.111111001010011<0

Из примера следует:

1) При получении сумм слагаемых с одинаковыми знаками (C1 и С4) переполнение разрядной сетки не произошло, т. к. знак суммы соответствует знакам слагаемых и переносы в знаковый и из знакового согласуются.

2) При получении сумм С2 и С4 образовался перенос из знакового разряда, который следует исключить.

3) Суммы C1 и С2 — положительные, СЗ и С4 — отрицательные, т. е. знаки результатов получены автоматически при сложении чисел со знаками.

Полученные суммы заносятся в разрядную сетку памяти в дополнительном коде, т. е. без изменения.

Проверка. Для этого следует перевести полученные суммы любым способом в десятичную систему и сравнить с заданием. С1 = 110101101 = 1 × 28+ 1 ×27 + 1 × 25+ 1 × 23+ 1 × 22+ 1 × 2° = 256 + 128 + 32 + 8 + 4 + 1= 429; (С =254+ 175 = 429).

С2= 1001111 =4F = 4 × 16+15 = 79; (С = 254 - 175 = 79).

С3 = -1001111 =-[(((((1 × 2 + 0)2 + 0)2 + 1)2 + 1)2 + 1)2 + 1] = -79.

С4 = -110101101 =-1AD = -[(1 × 16 +10) 16 +13] = -429.

Пример 3.20. Дано А = 25756, В = 7125. Найти суммы положительных и отрицательных значений в 16-ти разрядном формате.

Решение. А = 2575610 = 649C16 = 1100100100111002; В = 712510 = 1BD516 = 11011110101012.

С1=А+В С2 =-А - В

[А]пр = 0.110010010011100 [-A]доп= 1.001101101100100

[В]пр= 0.001101111010101 [-B]доп=1.110010000101011

[C1]пр=1.000000001110001<О [C2Jпр=10.111111101001111>0

Полученные суммы не соответствуют ожидаемым результатам, т. к. произошло переполнение разрядной сетки за допустимые значения (32767). Переполнение разрядной сетки легко определить либо по первому признаку — знаки сумм C1 и С2 не соответствуют знакам слагаемых, либо по второму — переносы в знаковый и из знакового разряда в суммах C1 и С2 не согласуются. В этих случаях в больших ЭВМ вырабатывается запрос на прерывание программы, в некоторых типах малых ЭВМ производится автоматический переход к нормальной форме представления данных а в персональных обычно производится автоматическое ограничение числа.

Замечание. Операции умножения и деления производятся над абсолютными значениями чисел — в прямом коде, знак произведения определяется сложением по модулю 2 знаков сомножителей (0 + 0 = 0, 1+0 = 1, 1 + 1 = 0), знак частного — сложением по модулю 2 знаков делимого и делителя, а знаку остатка присваивается знак делимого.

Соседние файлы в папке Лекции по информатике