Сложение чисел.
Информатика
Алгебраическое сложение в обратном коде. Представление чисел в обратном коде позволяет выполнять их сложение и вычитание с учетом знака, при этом результат также получается в обратном коде. Для выявления особенностей реализации этих операций рассмотрим пример алгебраического сложения 3-разрядных (п = 3) двоичных чисел Л и В для трех случаев. Коррекция осуществляется дополнительным прибавлением… Читать ещё >
Сложение чисел. Информатика (реферат, курсовая, диплом, контрольная)
Сложение двоичных чисел. Принцип сложения целых положительных «-разрядных двоичных чисел и проиллюстрирован на рис. 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. |
Пример 2.14. Изложенный выше принцип проиллюстрируем на примере сложения двух 4-разрядных (и = 4) двоичных чисел (рис. 2.4).
Рис. 2.4. Арифметическое сложение двух 4-разрядных положительных двоичных чисел.
Перенос СА = 1 фиксирует переполнение разрядной сетки и свидетельствует о получении ошибочного результата (4)0 вместо 20ш). Правильный результат 101 002 = 2010 не помещается в 4-разрядную сетку.
Алгебраическое сложение в дополнительном коде. Представление чисел в дополнительном коде позволяет выполнять их сложение и вычитание с учетом знака, при этом результат также получается в дополнительном коде. Для выявления особенностей реализации этих операций рассмотрим примеры алгебраического сложения 3-разрядных (п = 3) двоичных чисел А и В. В табл. 2.9 приведены все 3-разрядные двоичные числа в дополнительном коде и их десятичные эквиваленты. Знаковый разряд выделен жирным шрифтом. Данные табл. 2.9 используются в приведенных ниже примерах.
Таблица 2.9
Положительные числа. | Отрицательные числа. | ||
Двоичное число. | Десятичный эквивалент. | Двоичное число. | Десятичный эквивалент. |
+0. | — 0. | ||
+1. | — 1. | ||
+2. | — 2. | ||
+3. | — 3. | ||
+4. | 1 100. | — 4. | |
+5. | — 5. | ||
+6. | — в. | ||
+7. | — 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 до.
Рис. 2.5. Алгебраическое сложение двух 4-разрядных двоичных чисел в дополнительном коде.
Рис. 2.6. Алгебраическое сложение двух 4-разрядных двоичных чисел в обратном коде.
- 19 единиц (1010, 1011, …, 10 011) выявляется по следующим признакам:
- • появление при суммировании пятого разряда двоичного числа в виде переноса в следующую тетраду (числа от 10 000 до 10 011 или от 16 до 19 в десятичной системе счисления);
- • наличие единиц в разрядах с весом 8 и 2 (числа 1010 и 1011 или 10 и 11), 8 и 4 (числа от 1100 до 1111 или от 12 до 15).
Коррекция осуществляется дополнительным прибавлением двоичного числа 0110 (6)10 к полученному результату. Это обусловлено тем, что вес пятого разряда как двоичного числа составляет 16 десятичных единиц, а как переноса в следующий старший разряд десятичного числа — 10, т. е. разность равна 6. Поясним принцип коррекции на примерах.
Пример 2.17. Выполним сложение двух тетрад А и В с учетом переноса Р для трех случаев (рис. 2.7).
Рис. 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. В результате коррекции получен правильный результат 1 112 = 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).
Рис. 2.8. Сложение положительных 3-разрядных чисел А = 548 и В = 278 в коде 8421.
Произведем сложение в обратном и дополнительном кодах чисел A и В (рис. 2.10).
Так как в обратном коде получено отрицательное значение суммы, необходимо осуществить преобразование обратного кода в прямой (рис. 2.11).