É honestamente a preferência, se por algum motivo você tiver polidactilia e tiver 11 dedos ou gostar de contar com os dedos dos pés, assim você gosta de trabalhar na base 20, é honestamente sua decisão. Mas saiba que, em um tópico de universalidade, a maioria de nós que tem que lidar com bits e bytes diariamente será realmente marcada se conseguirmos algo que esteja fazendo manipulação de bits na base 19.
RAZÕES DA BASE x
Base 10 - Modelo de todas as nossas coisas, porque temos 10 dígitos contados (os pés são estranhos e fedorentos, por isso não os usamos).
Base 2 - Os computadores usam isso para bits (ligado / desligado). Isso está relacionado aos níveis de tensão legíveis que são propagados por portas / transistores / capacitores.
Base 8 - Antiga, quando os computadores não eram super enormes (ou quando eram espaciais), isso era bom para uma coisa ou outra (não gosto nem um pouco)
Base 16 - Bom para mostrar mordidelas superiores e inferiores de um byte para manipulação de bits. Isso é super útil no mundo incorporado / fpga / hardware.
BASES NORMAIS EM COMPUTADORES
Para ir com preferência, eu poderia dizer exatamente como "on" está em uma cor em um valor hexadecimal RGB que é dado a mim, isso consequentemente pode ser representado em um único int no hardware e, em seguida, com algumas mudanças podem ser devolvidas a mim fácil de usar, 1 cor complexa = 1 ponto de dados, ideal para processamento de imagens grandes com memória limitada. Compare isso com uma representação da base 10, você pode adicioná-los todos e armazená-los em um número, mas qual número é qual, ou talvez R é o tempo 10000, G é 100 e B é seu próprio espaço, são muitas operações matemáticas , geralmente as multiplicações custam mais ciclos do que um turno. Portanto, seu próximo pedaço de dados já está na fila antes de terminar com o processamento do último pedaço, opa, isso acabou agora.
Às vezes, é melhor trabalhar nas bases 2, 8 ou 16. Na maioria das máquinas, multiplicar por 2 é apenas uma mudança de bit, essas são super rápidas, o mesmo com uma divisão por 2.
Explicar ainda mais a idéia de um pouco de brincadeira. Há um grande número de vezes ao trabalhar em um ambiente incorporado que eu precisava para acessar uma variedade de luzes, interruptores ou outros itens mapeados de registro.
Nesse caso, atribuir um caractere, um byte ou um int inteiro a cada comutador seria ineficiente e tolo, um comutador ou luz possui 2 posições - ativada e desativada - por que atribuiria algo que tenha até 256 posições ou 2 ^ 16 posições etc. Cada luz em uma matriz pode acomodar 1 bit 8 ou 16 ou 32 ou 64 ou 128 (largura do seu tipo de dados) em uma única palavra / registro. A eficiência do espaço é necessária e bastante bem-vinda.
Usando qualquer coisa que seja base 2 ^ n em programação para lidar com dados RGB, muitos dados de sinal - GPS, áudio, ascii, etc. - são muito mais simples em hexadecimal, binário e octal, pois é assim que são representados na máquina e é possível discernir mais facilmente o que está sendo apresentado e como manipulá-lo.
USANDO BASES ESTRANHAS
Não há eficiência, a menos que você a codifique. Você quer a base 11, precisa configurar um tipo de dados para ele e sobrecarregar os operadores para manipular sua representação para o usuário. Não vejo razão para que um sistema contendo 5 itens, e apenas múltiplos de 5 itens precisem ser convertidos para a matemática de cinco itens. Além disso, é melhor orar para que quem decidiu escrever seu código para a base 271 o tenha documentado bem ou você possa gastar mais tempo entendendo o que vale a pena criar na base 271, porque todos os itens são múltiplos de 271.