Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Инфрматика_экзамен.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
305.94 Кб
Скачать

12. Действия над числами в естественной форме.

  1. Числа в естественной форме в памяти хранятся в дополнительном коде.

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

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

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

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

    • переносы из старшего разряда суммы в знаковый и из знакового за пределы разрядной сетки не согласуются.

Пример. A10 = 254 = A16 = FF = 111111102

B10 = 175 = B16 = AF = 101011112

Работаем в двух байтах. Составляем коды.

Aпр = 0000000011111110 -Aдоп = 1111111100000010

Bпр = 0000000010101111 -Bдоп = 1111111101010001

C1 = A + B Aпр = 0000000011111110

Bпр = 0000000010101111

0000000110101101>0

C2 = A – B Aпр = 0000000011111110

-Bдоп = 1111111101010001

10000000001001111>0

C3 = B – A Bпр = 0000000010101111

-Aдоп = 1111111100000010

1111111110110001 – дополнительный код

C4 = -A – B -Aдоп = 1111111100000010

Bдоп = 1111111101010001

11111111001010011

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

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

  2. Суммы C1, C2 – положительные, C3, C4 – отрицательные. C3, C4 хранятся в памяти в дополнительном коде, то есть без преобразования.

A10 = 25756 = A16 = 649C

B10 = 7125 = B16 = 1BD5

С1 = A + B C2 = -A – B

AПК = 0110010010011100

+BПК = 0001101111010101

1000000001110001

AДК = 1001101101100100

+BДК = 1110010000101011

10111111110001111

215 – 1 = 32767

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

13. Действия над числами в нормальной форме.

  1. Числа в нормальной форме хранятся в памяти в прямом коде с нормализованными мантиссами.

  2. Сложение чисел проводится путём сложения их мантисс при одинаковых характеристиках слагаемых. За общий выбирается наибольший порядок. Выравнивание порядков слагаемых проводится путём сдвига вправо мантиссы меньшего числа.

PA > PB P = PA - PB PB = PA - P

  1. При сложении мантисс с одинаковыми знаками возможно переполнение разрядной сетки, что будет являться нарушением нормализации влево. Для его устранения необходим сдвиг мантиссы на один разряд вправо и, соответственно, увеличение характеристики на 1.

  2. Результаты в прямом коде нормализуются.

  3. Действия в сумматоре выполняются над кодами мантисс, которые поступают из регистров в младшие 24 бита сумматора, знаки мантисс и характеристики заносятся в специальные схемы, которые обеспечивают выравнивание характ., норм. мантиссы рез., формирование знака результата и характеристики результата. Старшие разряды сумматора 24-31 заполняются нулями.

  4. Алгоритмы сложения после выравнивания характеристик зависят от знаков слагаемых:

  • если знаки одинаковые, модули мантисс (прямые коды) суммируются. Переполнение определяется наличием переноса единицы из старшего разряда мантиссы в 24 бит, что вызывает нарушение нормализации мантиссы влево. Нормализация проводится сдвигом на одну шестнадцатую вправо. Старшая тетрада мантиссы заполняется кодом 0001. Характеристика результата увеличивается на 1. В регистре результата сумматора формируется результат операции: схема анализа знака и характеристик. В 31-й заносят знак результата. В 30-24 – характеристика. 23-0 – мантисса в прямом коде;

  • если знаки слагаемых различны, отрицательная мантисса преобразуется в дополнительный код и мантиссы суммируются. Признаком положительного результата является перенос из старшего разряда мантиссы в младший характеристики, который стирается. Признаком отрицательного результата – его отсутствие. При этом мантисса представляется в дополнительном коде и должна быть преобразована в прямой. При сложении чисел с разными знаками возможно нарушение нормализации мантиссы вправо, тогда старшая 16-ая цифра мантиссы равна нулю. Нормализацию проводят сдвигом на 16-ую цифру влево и уменьшением характеристики на 1. После этого в регистре формируется результат. Знаковый разряд заносят в знаковый разряд большего по модулю слагаемого.

A = 15 7/8; B = 5/16;

A16 = F,E; B16 = 0,5;

mA = 0,FE; pA = 40 + 1 = 41;

mB = 0,5; pB = 40;

m*B = 0,05;

C1 = A + B;

mAпк = 00’FE0000; pA = 41;

m*Bпк = 00’050000; pB = 41;

mC1пк = 00’103000; pC1 = 41 + 1 = 42;

Единица переноса из старшего разряда в характеристику характеризует переполнение разрядной сетки. Это нарушение нормализации влево. Мантиссу необходимо сдвинуть на одну 16-ую вправо, порядок увеличить на 1.

C1 = 15 7/8 + 5/16 = 16 3/16;

C1  01000010000100000011000000000000;

42103000;

C2 = -A – B = -(A + B);

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

C2  11000010000100000011000000000000;

С2103000;

C3 = A – B; C4 = B – A;

m*Bдк = 01’000000 mAпк = 00’FE0000 pA = 41

-00’050000 m*Bдк = 00’FB0000 pB = 41

00’FB0000 mC3 = 01’F90000 pC3 = 41

Так как слагаемые имеют разные знаки, то единица переноса из старшего разряда мантиссы является признаком положительного результата и должна быть стёрта для компенсации константы дополнительного кода.

С3 = 01000001111110010000000000000000

mAдк = 01’000000 mAдк = 00’020000 pA = 41

-00’FE0000 m*Bпк = 00’050000 pB = 41

00’020000 00’070000 pC4 = 41

Переноса из старшего разряда мантиссы нет, поэтому результат отрицательный находится в дополнительном коде и должен быть переведён в прямой.

1,000000

-0,070000

0,FE0000

C4  11000001111110010000000000000000

С1F90000