Самодополняющий код для Base-10 - это код, для которого дополнение данной кодированной цифры d [0-9] приведет к 9-d , 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 относится к контекстудвоичного кодирования десятичных чисел / чисел Base-10, потому что 9 является наибольшим значением, требуемым при кодировании чисел Base-10.
Ваш пример подразумевает Base-16, отображаемый в виде десятичной дроби, для которого вы правильно генерируете дополнение 15 вместо дополнения 9.8-4-2-1 - это интуитивно понятный самодополняющий код для Base-16, потому что взятие дополнения из четырехзначного двоичного числа аналогично вычитанию его из 15.
То же самое нельзя сказать оЧисло Base-10 представлено таким же образом, потому что мы представляем только 10 значений в 16-элементном кодовом пространстве, поэтому был разработан ряд более сложных систем для генерации самодополняющих кодов для представления десятичных чисел в 4-значных двоичных числах.,
Таблица 13.1 здесь: [http://www.inf.fu -berlin.de / lehre / WS00 / 19504-V / Chapter1.pdf ] показывает два самодополняющих кода для десятичного кодирования, а именно 84, -2, -1 и схемы избыточного-3 кодирования, а также в следующем разделе описываются цель и теория самодополняющих кодов.