Это больше теория чисел, чем код;это не точное решение вашей проблемы, но оно может дать вам более полное представление о том, что происходит.
Число в стандартной десятичной записи (основание 10) может быть представлено с помощью ряда сумм:
1023 эквивалентно 1 * 1000 + 0 * 100 + 2 * 10 + 3 * 1
Это эквивалентно (1 * 10 ^ 3) + (0 * 10 ^ 2) + (2 * 10 ^ 1) + (3 * 10 ^ 0)
В случаедвоичного числа (основание 2), такое число, как 101, может быть представлено как:
1 * 2 ^ 2 + 0 * 2 ^ 1 + 1 * 2 ^ 0 = 4 + 0 + 1 = десятичное 5.