Самостоятельно код для дополнени Base-10 представляет собой код, для которого дополнение заданных кодированных цифр д [0-9] приведет к 9-ю, 9 с дополнением.
Чтобы кодировать номера Base-10 в двоичном формате, мы должны иметь возможность представлять 10 значений [0-9], что означает, что нам требуется 4 бита, потому что 3 бита могут представлять 8 значений, которых недостаточно; 4 бита могут представлять 16 значений, что больше, чем нам нужно, но мы не имеем (или не хотим) дробных битов.
Существует множество схем кодирования в пределах этих 4 бит, наиболее интуитивным из которых является схема 8-4-2-1 или прямое двоичное кодирование десятичного значения. Чтобы кодировать 12, используя 8-4-2-1, вы отдельно кодируете [1] и [2] как их соответствующие двоичные представления [0001] и [0010].
Дополнение 9 является релевантным в контексте двоичного кодирования десятичных/базовых 10 чисел, поскольку 9 является наибольшим значением, необходимым при кодировании чисел Base-10.
В вашем примере подразумевается Base-16, отображаемый как десятичный, для которого вы правильно генерируете дополнение 15, а не дополнение 9. 8-4-2-1 является интуитивно самодополняющим кодом для Base-16, потому что взятие дополнения из 4-значного двоичного числа совпадает с вычитанием его из 15.
То же самое нельзя сказать о Base- 10 представлены таким же образом, потому что мы представляем только 10 значений в 16-разрядном кодовом пространстве, поэтому было разработано несколько более сложных систем для генерации самодополняющих кодов для представления десятичных чисел в четырехзначных двоичных числах.
Таблица 13.1 здесь: [http://www.inf.fu-berlin.de/lehre/WS00/19504-V/Chapter1.pdf] показывает два самодополняющих кода для десятичного кодирования, а именно схемы кодирования 8,4, -2, -1 и избыточного 3, а последующий раздел описывает цель и теорию -дополнение кодов.