Как вы можете видеть ниже, просто для нахождения числа для этого нового типа двоичного кода требуется новый метод. Я мог бы посчитать их, один за другим, но мне все еще не понятно, как правильно это реализовать.
Возьмите этот двоичный код, например.
1100
и определите номер, который используется следующим способом:
0011 - # 1
0101 - # 2
0110 - # 3
1001 - #4
1010 - # 5
1100 - # 6
, поэтому 1100 равен '6'
, затем мы создаем новый код, который равен 6, но онимеет меньше 1 с (и, следовательно, имеет больше 0)! Пользователь определяет сколько меньше 1с. В этом примере это 1 меньше 1 с. Таким образом, мы можем найти его по:
000001
000010
000100
001000
010000
100000
, следовательно, 100000 - это '6'
Кроме того, код должен работать в обратном порядке, чтобы преобразовать 100000 в 1100, если пользователь решил убрать 2 0 с, а затем код добавляет 1 с, пока он не заработает. (Все, что пользователь должен сделать, это изменить значение 1 на 0 в коде, чтобы изменить функциональность кода. Дополнительный код не требуется.)
В конце кода иногда требуется заполнение, например, ex. все 1с отл. 1100-1111.