Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практ._зан.№2.doc
Скачиваний:
5
Добавлен:
26.11.2019
Размер:
64 Кб
Скачать

6 Арифметические действия над машинными кодами.

Предположим, что оба числа имеет 2-байтовое представление. Коды обоих чисел суммируются по правилам двоичного сложения разряд за разрядом, включая старшие знаковые разряды кодов. Если появляется перенос из знакового разряда, он отбрасывается. Отрицательный результат, полученный в дополнительном коде, должен быть переведен в прямой код.

Пример 7.

А) слагаемое – А пр.к. 0,1101100

слагаемое – В пр.к. +1,1000110

А д.к. 0,1101100

В д.к. + 1,0111010

А + В д.к. 0,0100110 - результат

11111000 - перенос

перенос игнорируется

0,0100110 - сумма

Б) слагаемое а пр.К. 0,0110110

слагаемое В пр.к. + 1,1011010

А д.к. 0,0110110

В д.к. + 1,0100110

А + В д.к. 1,1011100

А + В пр.к. 1,0100100 - сумма

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

Для выполнения операции вычитания предварительно вычитаемое переводится в дополнительный код, а затем осуществляется суммирование кодов чисел.

Пример 8.

Уменьшаемое а пр.К. 0,1101101

вычитаемое В пр.к. - 0,1000110

А д.к. 0,1101101

В д.к. + 1,0111010

А – В д.к 10,0100111 - разность

1111000 - перенос

В арифметико-логическом устройстве ЭВМ арифметические операции выполняются над операндами, представленными с фиксированной или плавающей точкой, в двоичной либо в десятичной системах счисления.

Алгоритм реализации операции сложения двоичных чисел с фиксированной точкой состоит из следующих этапов:

  1. анализа знакового разряда;

  2. перевода мантиссы в обратный или дополнительный код, если знак результата отрицательный;

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

Алгоритм выполнения сложения двоичных чисел с плавающей точкой гораздо сложнее, чем с фиксированной точкой, и состоит из следующих этапов:

  1. выравнивание порядков путем вычитания порядка меньшего числа из порядка большего числа с учетом знака порядка и сдвиг мантиссы на разность порядков;

  2. анализ знака мантиссы, перевод мантиссы в обратный или дополнительный код, если знак числа отрицателен;

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

  4. преобразование результатов в прямой код, если знак результата отрицательный;

  5. нормализация результата влево с уменьшением порядка, если результат получился ненормализованным.