Другие ответы ясно показали разницу в эффективности между base16 и base64.
Выбор базы - это не только эффективность.
Base64 использует больше, чем просто буквы и цифры. Различные реализации используют разные знаки пунктуации для обозначения заполнения и создания двух последних символов из набора из 64. Они могут включать плюс "+" и равный "=". обе проблемы в строках HTTP-запроса.
Таким образом, одна из причин отдавать предпочтение base16 над base64 состоит в том, что значения base16 могут быть составлены непосредственно в строки HTTP-запроса без дополнительной кодировки. Это важно для тебя?
Обратите внимание, что это дополнительная проблема, сверх эффективности. Ни одна из основ не является лучше или хуже; это всего лишь две разные точки на шкале, в которых вы найдете разные свойства, которые будут более или менее привлекательными в разных ситуациях.
Например, рассмотрим base32 . Он на 20% менее эффективен, чем base64, но все еще подходит для использования в строках HTTP-запросов. Большая часть его неэффективности происходит из-за того, что он не учитывает регистр и избегает нулевого «0» и одного «1», до ошибок при воспроизведении человеком.
Таким образом, base32 вводит новую проблему; легкость воспроизведения для человека. Это тебя беспокоит? Если это не так, вы можете использовать что-то вроде base62, что по-прежнему удобно в строках HTTP-запросов, но чувствительно к регистру и включает ноль «0» и «1».
Надеюсь, я пояснил, что выбор вашей базы кодирования - это вопрос скольжения по шкале, пока вы не добьетесь максимальной эффективности, которую можете иметь, прежде чем пожертвовать тем, что важно для вас.
В Википедии есть забавный список систем счисления .