Иначе говоря, это коды чисел из системы (BCD + 3). В этом коде каждая десятичная цифра ai представляется в виде двоичного эквивалента суммы ai+3. В отличие от BCD-кода код BCD+3 – самодополняющийся, но не имеющий свойства взвешенности. Применяется наиболее часто в десятичной арифметике, так как при выполнении двоичного суммирования легко выделить десятичный перенос.
Возможны следующие два случая сложения чисел в BCD-коде +3:
1) a + b ≤ 9; [ (a + 3) + (b + 3) ] ≤ 15.
И, следовательно, в тетраде суммы будут лишние 6 единиц. Чтобы тетрада суммы осталась тоже с избытком 3, нужно вычесть 3.
2) a + b ≥ 10; [ (a + 3) + (b + 3) ] ≥ 16.
Здесь во всех случаях возникает шестнадцатеричный перенос, вместе с которым тетраду суммы покинут и шесть избыточных единиц; чтобы тетрада суммы осталась с избытком 3, надо добавить 3.
Если складываются числа с разными знаками, то избыток в тетраде суммы будет равен нулю и суммирование, таким образом, сводится к правилам суммирования в BCD-коде.
Пример. Выполнить сложение чисел 169 и 378 в BCD-коде +3.
0.0100 1001 1100
A = 169 0.0110 1010 1011
B = 378 0.1011 0100 0111
A + B = 547 -0011+0011+0011
0.1000 0111 1010
8 7 10
Пример. Выполнить вычитание из числа 378 числа 169 в BCD-коде +3.
A = 378 0.0110 1010 1011
B = 1691.1011 0110 0011
A - B = 209 1 0.0010 0000 1110
циклический перенос 1
0.0010 0000 1111
+ 0011 -0011 -0011
0.0101 0011 1100
5 3 12
Пример. Выполнить вычитание из числа 169 числа 378 в BCD-коде +3.
A = 169 0.0100 1001 1100
B = 3781.1001 0101 0100
A - B = -209 1.1101 1111 0000
-0011 -0011 +1100
1.1010 1100 0011
- 0101 0011 1100
5 3 12
Правило. Если из тетрады был перенос, надо добавить +0011, если переноса не было, – 0011 (добавить 1100), независимо от знака слагаемых и знака суммы.