Честно говоря, это предпочтение, если по какой-то причине у вас полидактилия и у вас 11 пальцев или вам нравится считать пальцы на ногах, поэтому вам нравится работать на базе 20, честно, решать вам. Но поймите, что по теме универсальности, большинство из нас, которым приходится иметь дело с битами и байтами ежедневно, будут действительно отмечены галочкой, если мы получим что-то, что делает битовую манипуляцию в базе 19.
ПРИЧИНЫ ДЛЯ ОСНОВАНИЯ x
База 10 - модель всех наших вещей, потому что у нас есть 10 счетных цифр (ноги странные и вонючие, поэтому мы их не используем).
База 2 - Компьютеры используют это для битов (вкл / выкл), это связано с читаемыми уровнями напряжения, распространяемыми затворами / транзисторами / конденсаторами.
База 8 - Старая, когда компьютеры были не очень большими (или назад, когда они были космическими), это было хорошо для чего-то или другого (мне это не нравится)
База 16 - Подходит для отображения верхнего и нижнего полубайтов байта для манипулирования битами. Это очень полезно во встроенном / fpga / аппаратном мире.
НОРМАЛЬНЫЕ ОСНОВЫ В КОМПЬЮТЕРАХ
Если говорить о предпочтениях, я могу точно сказать, как «включен» цвет в шестнадцатеричном значении RGB, которое мне дано, следовательно, оно может быть представлено в виде одного целого в аппаратном обеспечении, а затем с некоторыми сдвигами может быть возвращено мне easy-peasy, 1 сложный цвет = 1 точка данных, которая хороша для обработки больших изображений с ограниченной памятью. Сравните это с базовым представлением 10, вы можете добавить их все и сохранить их в виде числа, но какое число это какое, или, может быть, R - это время 10000, G - это 100, а B - это свое собственное пространство, это много математических операций. Как правило, умножения требуют больше циклов, чем смены, поэтому ваш следующий фрагмент данных уже находится в очереди, прежде чем вы закончите с обработкой последнего фрагмента.
Иногда лучше всего работать на базе 2, 8 или 16. На большинстве машин умножение на 2 - это просто сдвиг, это очень быстро, то же самое с делением на 2.
Чтобы еще глубже изложить идею немного вертеться. При работе во встроенной среде большое количество раз мне было необходимо получить доступ к некоторому массиву источников света, переключателей или некоторых других элементов, отображаемых в регистре.
В этом случае назначение целого символа, байта или целого числа для каждого переключателя будет неэффективным и глупым, у переключателя или источника света есть 2 позиции - вкл. И выкл. - зачем мне назначать то, что имеет до 256 позиций, или 2 ^ 16 позиции и т. д. Каждый источник света в массиве может быть 1 битом, подходящим для 8, 16, 32, 64 или 128 (ширина вашего типа данных) для одного слова / регистра. Эффективность пространства необходима и скорее приветствуется.
Использование всего, что основано на 2 ^ n, в программировании для таких вещей, как обработка данных RGB, большого количества данных сигналов - GPS, аудио, ascii и т. Д. - намного проще в шестнадцатеричном, двоичном и восьмеричном виде, поскольку это то, как это представлено в машине, и можно легче распознать, что преподносится и как им манипулировать.
ИСПОЛЬЗОВАНИЕ СТРАННЫХ БАЗ
Там нет эффективности, если вы не код для этого. Вам нужна база 11, вы должны установить для нее тип данных и перегрузить все операторы, чтобы обработать ее представление для пользователя. Я не вижу причин, по которым система, содержащая 5 предметов и только когда-либо умноженная на 5 предметов, должна быть преобразована в математику из пяти предметов. И далее, вам лучше помолиться, чтобы тот, кто решил написать свой код для базы 271, задокументировал это хорошо, или вы могли бы потратить больше времени на его понимание, чем на создание базы 271, поскольку все элементы кратны 271.