double arrow

Тема 8. Десятичная арифметика


1. Выполнение операции сложения в двоично-десятичном коде

Для определения формальных правил поразрядного сложения чисел, представленных в двоично-десятичном коде, рассмотрим особенности, которые присущи этому коду:

1) наличие разрешенных и запрещенных комбинаций. Появление запрещенной комбинации при выполнении каких-то действий над числами свидетельствует о возникновении ошибки или же о необходимости ввести корректировку результата;

2) при сложении тетрад возникает потетрадный перенос = 16 вместо поразрядного переноса = 10. Это приводит к необходимости коррекции результата.

При сложении двух чисел в двоично-десятичном коде Aд = an-1a1a0 и Bд = bn-1…b1b0 (ai и bi – тетрады соответствующих чисел) могут возникнуть следующие случаи.

1. ai + bi + ci-1 < 10, где ci-1 – перенос из предыдущей тетрады. При сложении в данной позиции десятичного числа образуется сумма меньше 10. Если действия над разрядами тетрады производят по правилам двоичной арифметики, то правильный результат получается без коррекции.

2. ai + bi + ci-1 ≥ 10. При сложении возникает десятичный перенос в следующую позицию, и сумма должна быть равна ai + bi + ci-1 - 10.

Свидетельством того что результат неправильный, является либо появление запрещенной комбинации, если 10 ≤ ai + bi + ci-1 ≤ 15, либо появление потетрадного переноса = 16, что превышает значение десятичного переноса на 6, если 16 ≤ ai + bi + ci-1 ≤ 19. Следовательно, требуется коррекция результата в данной тетраде введением поправки, равной +6.

Таким образом, корректирующее слагаемое 6(10) = 0110(2) при сложении двух чисел в двоично-десятичном коде должно добавляться к каждой тетраде, в которой в процессе сложения

1) получена недопустимая цифра (запрещенная комбинация);

2) возник перенос в следующую тетраду.

2. Выполнение операции вычитания в двоично-десятичном коде

При выполнении вычитания в двоично-десятичном коде возможен заем между тетрадами. При двоичном вычитании заем эквивалентен 16(10), в то время как для десятичного вычитания он должен соответствовать 10(10). Чтобы компенсировать излишек в заеме, необходимо вычесть корректирующее число 6(10) = 0110(2) из той группы, которая получила заем.

Таким образом, при вычитании чисел в двоично-десятичном коде возникает лишь одна ситуация, требующая коррекции, а именно ситуация заема между тетрадами. Коррекция при этом сводится к вычитанию 6(10) = 0110(2) из каждой тетрады разности, которая получила заем.

3. Сложение в двоично-десятичном коде чисел со знаком

Так же как и в двоичной системе, для представления десятичных чисел со знаками можно использовать прямой, обратный или дополнительный код. По-прежнему двоичные цифры 0 и 1 могут служить указателями знака.

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

Для обратного и дополнительного кодов, если Aд ≥ 0, знаковый разряд должен содержать 0, а остальные n десятичных цифр (значащая часть) – абсолютное значение Aд.

Для обратного кода, если Aд ≤ 0, в старшем, знаковом разряде должна быть 1, а следующие n десятичных цифр должны соответствовать числу

10n - 1 - |Aд|,

которое называют обращением Aд.

Для дополнительного кода, если Aд ≤ 0, то в знаковом разряде должна быть 1, а следующие n десятичных цифр должны соответствовать числу

10n - |Aд|,

которое называют дополнением Aд.

Обращение сводится к вычитанию каждой цифры из 9 и инверсии знака. Дополнение получается путем добавления 1 к результату обращения, что эквивалентно тому, что младшая десятичная ненулевая цифра вычитается из 10.

Обращение десятичного числа можно получить и другим способом. Инвертирование тетрады означает получение дополнения до 24 - 1 = 15, вместо дополнения до 9. Следовательно, необходимо убрать разницу. Один из используемых при этом приемов состоит в том, что во все тетрады значащей части числа в двоично-десятичном коде добавляется 6(10) = 0110(2) и после этого производится инвертирование разрядов тетрад. Полученное изображение представляет собой обращение числа.

Так же как и в двоичной системе, обращение или взятие дополнения кода соответствует изменению знака числа, представляемого этим кодом.

Сложение в двоично-десятичном коде чисел со знаком осуществляется следующим образом. Значащие части кодов складываются по рассмотренным правилам десятичной арифметики, а знаковые разряды – по правилам двоичной арифметики. В дополнительном коде перенос из знакового разряда игнорируется, а в обратном выполняется круговой перенос.


Сейчас читают про: