3.6.Сложение чисел разных знаков
Рассматриваемые ниже случаи сложения чисел разного знака имеют следующие особенности
1. при сложении чисел разных знаков переполнение невозможно. Модуль суммы в этом случае всегда меньше модуля максимального и представимого в заданной разрядной сетке слагаемого;
2. знак суммы зависит, в отличие от ранее рассмотренных случаев, не только от знаков слагаемых, но и от соотношения их модулей.
В зависимости от соотношения модулей, сумма может формироваться или в прямом или в дополнительном кодах.
3.1.6.1. Модуль положительного операнда больше модуля отрицательного. (Случаи 6, 9)
Пусть, А,В – операнды, отвечающие соотношениям
для случая 6: А ³0 и В£0. Кроме того, | А |³| В |.
для случая 9: A£ 0 и B³0 Кроме того, | А |£ | В |
Выполняемое сложение при этих условиях эквивалентно соответственно вычитаниям (А– В) и (В–А). Разность, априори, положительна.
Таким образом, как для дробных, так и для целых чисел в рассматриваемых случаях в результате сложения должен формироваться прямой код положительной разности.
Пример 6 МОДУЛЬ ПОЛОЖИТЕЛЬНОГО ОПЕРАНДА БОЛЬШЕ МОДУЛЯ ОТРИЦАТЕЛЬНОГО (Случаи 6,9) |
|||||||||
Выполнить в ПДК сложение соответственно дробных А, В и целых X,Y операндов разных знаков. |
|||||||||
Дробные слагаемые равны |
Целые слагаемые равны |
||||||||
А=0,812510= 0,11010002; В= –0,7510 = –0,11000002; |
X=–1610 = –0 00100002; Y= 5610 = 0 01110002; |
||||||||
Предварительное решение. Предварительное сложение приводит к следующим результатам A+B=0,812510 –0,7510=0,062510=0,00010002; X+Y= 5610–1610= 4010= 0 01010002.. |
|||||||||
Предварительные выводы. Так как модули положительных операндов больше модулей отрицательных, то должны быть получены положительные суммы, представленные в прямом коде. |
|||||||||
Решение. Так как операнды B и X отрицательные числа, то они должны быть преобразованы в дополнительные коды. |
|||||||||
Дополнительный код дробного слагаемого В |
Дополнительный код целого слагаемого X |
||||||||
[В]доп=1.01000002 |
[X]доп=1.11100002 |
||||||||
Сложение в двоичных простых кодах имеет вид: |
|||||||||
|
|||||||||
Как и ожидалось, получены положительные суммы, представленные в прямом коде. |
|||||||||
3.1.6.3. Модуль положительного операнда меньше модуля отрицательного (Случаи 7,8).
Пусть, А,В операнды, отвечают соотношениям
А ³0 и В£0. Кроме того, | А |£| В, (Случай 7)
A£ 0 и B³0 Кроме того, | А |³ | В |, (Случай 8) .
Выполняемое сложение для случая 7 эквивалентно вычитанию (А – В). Разность, априори, отрицательна и равна –( |В| –| А|). Для случая 8 сложение эквивалентно вычитанию (В –А) Разность, также априори отрицательна и равна –( |A| –|B|).
Следует ожидать также, что разности будут формироваться в дополнительном коде.
ПРИМЕР7. МОДУЛЬ ПОЛОЖИТЕЛЬНОГО ОПЕРАНДА МЕНЬШЕ МОДУЛЯ ОТРИЦАТЕЛЬНОГО (СЛУЧАИ 7,8) |
|||||||||
Выполнить в ПДК сложение соответственно дробных А, В и целых X,Y операндов разных знаков. |
|||||||||
Дробные слагаемые равны |
Целые слагаемые равны |
||||||||
А = 0,7510 = 0,11000002; В = –0,87510= –0,11100002 |
X= –6410 = –0 10000002 Y= 5610 = 0 01110002; |
||||||||
Предварительное решение. Предварительное сложение приводит к результатам A+B = 0,7510 – 0,87510 = – 0,12510=–0,00100002; X+Y= –6410+5610= – 810 = – 0 00010002. |
|||||||||
Решение. Так как все операнды B и X отрицательные числа, то они должны быть преобразованы в дополнительные коды. |
|||||||||
Дополнительный код дробного слагаемого В |
Дополнительный код целого слагаемого X |
||||||||
[В]доп=1.00100002; |
[X]доп=1.10000002 |
||||||||
Сложение в двоичных дополнительных кодах имеет вид: |
|||||||||
|
|||||||||
Суммы сформированы в дополнительных кодах, поэтому они требуют преобразования в прямой код. Преобразование в прямой код позволяет получить (А+В)=[1.1110000]доп®[1.0010000]пр; (X+Y)=[1 1111000]доп®[1 0001000]пр; |
|||||||||
Таким образом, примеры подтверждают аналитические выводы. |
|||||||||
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.