2012-01-29 2 views
3

Если мы используем hex, потому что это упрощение двоичного кода, что упрощает работу с программистом, его легче читать, чем двоичный, и переносит больше данных (и т. Д.), Почему мы не переходим к следующему логическому шагу base64?Почему мы не используем base64 вместо hex?

Пример:

В десятичное:
1.000.000

В двоичном:
0b11110100001001000000

В шестнадцатеричном:
0xf4240


Очевидно, что представление base64 выше будет еще более компактным и кратким, чем даже шестнадцатеричное представление.

В этом отношении, почему бы нам не использовать сколь угодно большой 2 n базовая система? Зачем останавливаться на гексах?

+0

Какой из них проще для человека? Hex или base64? –

+0

Можете ли вы действительно запомнить (или расшифровать), что такое двоичное представление 'I34'? Если вы не можете, значит, это не так полезно. Существуют также проблемы с тем, что каждая буква представляет собой 6 бит вместо кратного размерам слов, которые мы используем (4, 8 бит). – bdares

ответ

6

Hex имеет полезное свойство использовать две цифры для одного байта. Это очень удобно для просмотра необработанных памяти, адресов памяти и т. Д. В мои дни PDP мы использовали восьмеричную много, потому что мы могли легче читать машинный код. Base-64 не предлагает такую ​​хорошую делимость: это 6 бит, поэтому это 4 цифры для 3 байтов.

+0

Исправление: 4 символа для 3 байтов. Цифры специально относятся к тем символам, которые работают в системе base-10. – bdares

+0

@bdares [Ваше утверждение о десятичной системе не совсем точно] (http://en.wikipedia.org/wiki/Numerical_digit). Слово «цифра» может использоваться для обозначения символов в любой позиционной числовой системе. – dasblinkenlight

+0

По этой логике не было бы еще проще читать один символ на байт? – chrisdotcode

0

Base64 уже используется в качестве системы кодирования для множества задач. Например, в Java существует множество реализаций like here. Это может быть полезно для транспортировки закодированных данных в xml.

+0

Я имел в виду, почему мы не используем его специально для чисел, вместо гексагона. – chrisdotcode

+1

Тогда вы должны сказать, что в вашем вопросе –

2

Quick, что такое двоичное или десятичное значение символа K? (Или, если я скажу вам разделить K объекты из кучи, можете ли вы сделать это, не потратив несколько минут на выяснение того, что на самом деле означает это значение?)

Если вам нужно засчитывать при чтении алфавитной песни, вы поймете, что проблема с использованием base-64 - как письменная система цифр. Черт, вам нужно использовать песню, чтобы помнить, что такое порядка 26 символов (по крайней мере, я знаю), как вы можете вспомнить 64 из них?