Сложение двоично-десятичных чисел
Сложение двоично-десятичных чисел производится по правилам двоичной арифметики, с учетом переносов. Пусть имеем два десятичных числа А и В. Требуется найти сумму С = А + В.
В каждой тетраде выполняется сложение трёх чисел - двух слагаемых и переноса из предыдущего разряда, т.е. аn + bn + pn-1. При этом возможны такие ситуации.
1) аn + bn + pn-1 < 10 . А = 14 В = 23 С = А + В = 37
А = 0001 0100
В = 0010 0011
С = 0011 0111 37 Ответ получился верный.
2) аn + bn + pn-1 > 15 . А = 47 В = 39 С = А + В = 86
А = 0100 0111
В = 0011 1001
С = 1000 0000 80 Ответ получился неверный, так как был перенос из младшей тетрады в старшую. Тетрада переполняется числом 16, т.е. единица межтетрадного переноса уносит в старшую тетраду 16 , а не 10 единиц как в десятичной системе счисления ( шесть лишних единиц! ). Поэтому результат необходимо скорректировать путём добавки + 6. Выполним коррекцию
С = 1000 0000
0000 0110 - коррекция ( + 6 )
ответ 1000 0110 86 Ответ правильный.
3) 10 аn + bn + pn-1 15 А = 47 В = 36 С = А + В =83
А = 0100 0111
В = 0011 0110
С = 0111 1101 Ответ неверный, хотя и нет межтетрадного переноса, но имеется запрещённая комбинация. Необходимо вызвать искусственное переполнение тетрады путём добавки +6. Выполним коррекцию
С = 0111 1101
0000 0110 - коррекция ( + 6 )
ответ 1000 0011 83 Теперь ответ правильный. Внимание! Коррекция результата выполняется только один раз, поэтому межтетрадный перенос при коррекции не требует ещё одной коррекции.
Таким образом, при сложении двоично – десятичных чисел выполняется коррекция результата по правилу – если был межтетрадный перенос (переполнение тетрады) или получилась запрещённая комбинация, то к этой тетраде добавляется + 6 (0110).
Ещё один пример. А = 479 В = 128 С = А + В = 607
В старшей тетраде коррекция 0, в средней - +6 (запрещённая комбинация), в младшей тетраде +6 ( был перенос ).
Дата добавления: 2016-01-18; просмотров: 946;