Сложение чисел

Сложение двоичных чисел. Принцип сложения целых положительных "-разрядных двоичных чисел ипроиллюстрирован на рис. 2.3 и состоит в суммировании отдельных разрядов по правилу

(2.16)

где ск – перенос из – 1)-го разряда в к-й; Ьк, ак – к-с разряды слагаемых В, A; sk – сумма к-го разряда; ск+ { перенос в {k + 1)-й разряд; k = 0, 1, 2,п- 1.

Правила сложения многоразрядных двоичных чисел

Рис. 2.3. Правила сложения многоразрядных двоичных чисел

Разряды суммы формируются последовательно, начиная с младшего разряда. Для нулевого разряда (к = 0) перенос с0 отсутствует, поэтому выражение (2.16) имеет вид b0 + а0 = с, sQ. Перенос сп = 1 в п-й разряд приводит к неправильному результату, при этом переполняется разрядная сетка. Условие отсутствия переполнения имеет вид

(2.17)

В табл. 2.8 приведены восемь возможных вариантов суммирования k-x разрядов по формуле (2.16).

Таблица 2.8

Входные величины

Выходные величины

Перенос &-го разряда ск

к- й разряд Ьк слагаемого В

k-v разряд ак слагаемого А

Перенос в + 1)-й разряд ck+i

Сумма &-го разряда sk

0

0

0

0

0

0

0

1

0

1

0

1

0

0

1

0

1

1

1

0

1

0

0

0

1

1

0

1

1

0

1

1

0

1

0

1

1

1

1

1

Пример 2.14. Изложенный выше принцип проиллюстрируем на примере сложения двух 4-разрядных (и = 4) двоичных чисел (рис. 2.4).

Арифметическое сложение двух 4-разрядных положительных двоичных чисел

Рис. 2.4. Арифметическое сложение двух 4-разрядных положительных двоичных чисел

Перенос СА = 1 фиксирует переполнение разрядной сетки и свидетельствует о получении ошибочного результата (4)0 вместо 20ш). Правильный результат 101002 = 2010 не помещается в 4-разрядную сетку.

Алгебраическое сложение в дополнительном коде. Представление чисел в дополнительном коде позволяет выполнять их сложение и вычитание с учетом знака, при этом результат также получается в дополнительном коде. Для выявления особенностей реализации этих операций рассмотрим примеры алгебраического сложения 3-разрядных (п = 3) двоичных чисел А и В. В табл. 2.9 приведены все 3-разрядные двоичные числа в дополнительном коде и их десятичные эквиваленты. Знаковый разряд выделен жирным шрифтом. Данные табл. 2.9 используются в приведенных ниже примерах.

Таблица 2.9

Положительные числа

Отрицательные числа

Двоичное число

Десятичный эквивалент

Двоичное число

Десятичный эквивалент

0000

+0

0000

-0

0001

+1

1111

-1

0010

+2

1110

-2

0011

+3

1101

-3

0100

+4

1 100

-4

0101

+5

1011

-5

0110

+6

1010

0111

+7

1001

-7

Пример 2.15. Выполним операцию алгебраического сложения 3-разрядных (n = 3) двоичных чисел А и В в дополнительном коде (2.14)для трех случаев. Так как особенности сложения положительных чисел рассмотрены выше, в примерах приведены только случаи, когда одно или оба числа А, В имеют отрицательный знак (рис. 2.5).

Появившийся в процессе суммирования двоичных чисел перенос С4 = 1 выходит за пределы разрядной сетки. Полученные суммы А + В дают правильный результат в дополнительном коде.

Алгебраическое сложение в обратном коде. Представление чисел в обратном коде позволяет выполнять их сложение и вычитание с учетом знака, при этом результат также получается в обратном коде. Для выявления особенностей реализации этих операций рассмотрим пример алгебраического сложения 3-разрядных (п = 3) двоичных чисел Л и В для трех случаев.

Пример 2.16. Выполним операцию алгебраического сложения 3-разрядных (п = 3) двоичных чисел Л и В представленных в обратном коде. Рассмотрены случаи, когда одно или оба числа Л, В имеют отрицательный знак (рис. 2.6).

Особенность сложения в обратном коде состоит в том, что при появлении переноса СА = 1 (2-й и 3-й случаи) необходимо выполнить дополнительную операцию: к полученной сумме А + В прибавить значение С4 = 1. При отсутствии переноса (С4 = 0) коррекции суммы не требуется (случай 1).

Сложение двоично-десятичных чисел. Арифметическое сложение одноразрядных чисел. Рассмотрим один из возможных способов суммирования положительных одноразрядных десятичных чисел, представленных в коде 8421.

Сложение тетрад происходит по правилам двоичной арифметики. Если сумма больше 9, то возникает необходимость в проведении коррекции. Значение суммы от 10 до

Алгебраическое сложение двух 4-разрядных двоичных чисел в дополнительном коде

Рис. 2.5. Алгебраическое сложение двух 4-разрядных двоичных чисел в дополнительном коде

Алгебраическое сложение двух 4-разрядных двоичных чисел в обратном коде

Рис. 2.6. Алгебраическое сложение двух 4-разрядных двоичных чисел в обратном коде

  • 19 единиц (1010, 1011, ..., 10011) выявляется по следующим признакам:
    • • появление при суммировании пятого разряда двоичного числа в виде переноса в следующую тетраду (числа от 10000 до 10011 или от 16 до 19 в десятичной системе счисления);
    • • наличие единиц в разрядах с весом 8 и 2 (числа 1010 и 1011 или 10 и 11), 8 и 4 (числа от 1100 до 1111 или от 12 до 15).

Коррекция осуществляется дополнительным прибавлением двоичного числа 0110 (6)10 к полученному результату. Это обусловлено тем, что вес пятого разряда как двоичного числа составляет 16 десятичных единиц, а как переноса в следующий старший разряд десятичного числа – 10, т.е. разность равна 6. Поясним принцип коррекции на примерах.

Пример 2.17. Выполним сложение двух тетрад А и В с учетом переноса Р для трех случаев (рис. 2.7).

Сложение двух тетрад A и В с учетом переноса Р для трех случаев

Рис. 2.7. Сложение двух тетрад A и В с учетом переноса Р для трех случаев

  • 1. При А + В + Р< 9 перенос в старую тетраду не возникает, сумма соответствует разрешенной комбинации двоично-десятичного кодирования, поэтому коррекции не требуется. Получен правильный результат.
  • 2. Для случая 2 при сложении чисел 4 + 7 + 0 = 11 выполняется условие 10 < А + В + Р < 15. О неправильном результате свидетельствует наличие единиц в разрядах с весом 8 и 2 суммы 1011, поэтому выполнена коррекция. При проведении коррекции путем прибавления числа 0110 (6)|0 получена сумма 1 0001 (17)|0 в виде 5-разрядного числа. Пятый разряд "уходит" в старшую тетраду, забирая с собой 16 единиц, и оставляет правильный результат 0001 (1). Таким образом, в этом случае преднамеренная коррекция вызвала появление единицы в пятом разряде, перенос которой в следующую тетраду позволил получить правильный результат.
  • 3. При сложении одноразрядных десятичных чисел (9 + 7 + 1 = 17) получен результат 1 0001 в виде 5-разрядного двоичного числа. Значение 1 в пятом разряде соответствует 16 в десятичном исчислении. После переноса единицы пятого разряда в старшую тетраду ее значение становится равным 10. Так как перенос сопровождается уменьшением результата на 6 десятичных единиц, к тетраде необходимо прибавить двоичное число ОНО (6)10. В результате коррекции получен правильный результат 01112 = 710.

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

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

Пример 2.18. Вычислим сумму положительных 3-разрядных чисел А = 548 и В = 278 в коде 8421 (рис. 2.8).

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

  • • представить слагаемые А и В в обратном А, и В, или дополнительном А и В коде;
  • • произвести суммирование в обратном (Зо6р + Во6р) или дополнительном (Лдоп + Вдип) коде;
  • • при необходимости произвести коррекцию суммы;
  • • при отрицательной сумме преобразовать полученный результат из обратного и дополнительного кодов в прямой код.

Пример 2.19. Вычислим алгебраическую сумму 3-разрядных чисел А + В = -548 + 278 в обратном коде и А + В = +548 + (-278) в дополнительном коде. Числа представлены в двоично-десятичном коде 8421 (рис. 2.9).

По приведенным выше правилам для кода 8421 запишем отрицательные значения слагаемых -548 и -278 в обратном и дополнительном кодах (рис. 2.9).

Сложение положительных 3-разрядных чисел А = 548 и В = 278 в коде 8421

Рис. 2.8. Сложение положительных 3-разрядных чисел А = 548 и В = 278 в коде 8421

Произведем сложение в обратном и дополнительном кодах чисел A и В (рис. 2.10).

Так как в обратном коде получено отрицательное значение суммы, необходимо осуществить преобразование обратного кода в прямой (рис. 2.11).

 
< Пред   СОДЕРЖАНИЕ     След >