Здесь вам не хватает общей формулы для цифровых номеров.
104 = 1*10^2 + 0*10^1 + 4*10^0
Аналогично,
0100b = 0*2^3 + 1*2^2 + 0*2^1 + 0*0^0
А для шестнадцатеричного числа буквы A-F обозначают числа 10-15. Таким образом,
E8 = 14*16^1 + 8*16^0
Когда вы идете справа налево, каждая цифра представляет коэффициент следующей более высокой степени основания (также называемой основанием).
В программировании, если у вас есть целочисленное значение (во внутреннем формате компьютера, возможно, двоичное, но оно не имеет значения), вы можете извлечь самую правую цифру с помощью операции модуля.
x = 104
x % 10 #yields 4, the "ones" place
И тогда вы можете получить «все, кроме» самой правой цифры с целочисленным делением (целочисленное деление отбрасывает остаток, который нам больше не нужен).
x = x / 10 #yields 10
x % 10 #now yields 0, the "tens" place
x = x / 10 #yields 1
x % 10 #now yields 1, the "hundreds" place
Так что, если вы выполняете деление модуля и целочисленного значения в цикле (останавливаясь при x == 0), вы можете вывести число в любой базе.