С восемью битами возможны только 256 значений (2 8 ), независимо от того, как вы их нарезаете и нарезаете.
Ваша схема кодирования цифр в 2-3-3форма, такая как:
255 = 10 101 101
399 = 11 111 111
игнорирует тот факт, что эти трехбитовые последовательности могут представлять только восемь значений (0-7), а не десять (т. е. этот второй будет377, а не 399).
Компромисс заключается в том, что это означает, что вы получаете числа '25[6-7]'
(2 значения) '2[6-7][0-7]'
(16 значений) и '3[0-7][0-7]'
(64значения) в общей сложности 82 значения.
Ваша жертва для этого усиления заключается в том, что вы больше не можете представлять любые числа, содержащие 8
или 9
: '[8-9]'
(2 значения), '[1-7][8-9]'
(14 значений), '[8-9][0-9]'
(20 значений), '1[0-7][8-9]'
(16 значений), '1[8-9][0-9]'
(20 значений) или '2[0-4][8-9]'
(10 значений), всего 82 значения.
Баланс (82 против 82) показывает, что для восьмибитного типа данных все еще есть только 256 возможных значений.
Таким образом, ваша схема кодирования основана на ошибочной предпосылке, которая делаетсБоюсь, вторая часть вашего вопроса (как их добавить) не имеет значения.