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

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

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

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

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

При сложении двух чисел в двоично-десятичном коде A д = an -1a 1 a 0 и B д = bn -1… b 1 b 0 (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 десятичных цифр должны соответствовать числу

10 n - 1 - | A д|,

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

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

10 n - | A д|,

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

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

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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



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