Вот список функций, которые будут конвертироваться между любыми двумя базами: https://sites.google.com/site/computersciencesourcecode/conversion-algorithms/base-to-base
Редактировать (Надеюсь, что это будет совершенно ясно ...)
Вы можете найти больше информациина это в записи Википедии для Base 64 .
Обычный набор символов, используемый для Base 64, который отличается от набора символов, который вы найдете в ссылке, которую я предоставил доизменить это:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
Символ «A» - это значение 0, «B» - это значение 1, «C» - это значение 2, ... «8'- это значение 60,' 9 '- это значение 61,' + '- это значение 62, а' / '- это значение 63. Этот набор символов сильно отличается от того, что мы привыкли использовать для двоичного, восьмеричного,основание 10 и шестнадцатеричное, где первый символ равен '0', что представляет значение 0 и т. д.
Соджу отметил в комментариях к этому ответу, что для каждой двоичной цифры 64 требуется 6 бит, чтобы представить ее в двоичном виде,Используя число base 64, представленное в исходном вопросе, и преобразовав из base 64 в двоичное, мы получим:
B a 7 + K j 3 N
000001 011010 111011 111110 001010 100011 110111 001101
Теперь мы можем собрать все биты вместе (пробелы существуют только для того, чтобы помочь людям прочитать число):
000001011010111011111110001010100011110111001101
Далее мы можем вводить новые разделители пробелов каждые четыре бита, начиная с Наименее значимый бит :
0000 0101 1010 1110 1111 1110 0010 1010 0011 1101 1100 1101
Теперь оно должно быть оченьлегко увидеть, как это число преобразуется в основание 16:
0000 0101 1010 1110 1111 1110 0010 1010 0011 1101 1100 1101
0 5 A E F E 2 A 3 D C D