Es sinceramente preferencia, si por alguna razón tienes polidactilia y tienes 11 dedos o te gusta contar con los dedos de los pies, así que te gusta trabajar en la base 20, honestamente depende de ti. Pero tenga en cuenta que, en un tema de universalidad, la mayoría de nosotros que tenemos que lidiar con bits y bytes a diario se marcará realmente si obtenemos algo que está haciendo manipulación de bits en la base 19.
RAZONES PARA LA BASE x
Base 10: modelo de todas nuestras cosas porque tenemos 10 dígitos de conteo (los pies son raros y malolientes, por lo que no los usamos).
Base 2 - Las computadoras usan esto para bits (encendido / apagado) esto está relacionado con niveles de voltaje legibles que se propagan por puertas / transistores / condensadores.
Base 8: antiguo, cuando las computadoras no eran súper grandes (o cuando eran espaciales), esto era bueno para algo u otro (no me gusta ni un poco)
Base 16: buena para mostrar mordiscos superiores e inferiores de un byte para la manipulación de bits. Esto es súper útil en el mundo embebido / fpga / hardware.
BASES NORMALES EN COMPUTADORAS
Para ir con preferencia, podría decirle exactamente cómo "en" un color está en un valor RGB hexadecimal que se me da, esto en consecuencia se puede representar en un solo int en el hardware y luego con algunos cambios se me puede devolver fácil de usar, 1 color complejo = 1 punto de datos que es bueno para el procesamiento de imágenes grandes con memoria limitada. Compare eso con una representación de base 10, podría agregarlos todos y almacenarlos en un número, pero qué número es cuál, o tal vez R es el tiempo 10000, G es 100 y B es su propio espacio, son muchas operaciones matemáticas , por lo general, las multiplicaciones cuestan más ciclos que un turno, por lo que su siguiente pieza de datos ya está en la cola antes de que haya terminado con su última pieza procesada, vaya, eso ya no está.
A veces es mejor trabajar en base 2, 8 o 16. Con la mayoría de las máquinas, multiplicar por 2 es solo un poco de cambio, son súper rápidas, lo mismo con una división por 2.
Para exponer aún más sobre la idea de un poco de tonterías. Cuando trabajo en un entorno integrado, he necesitado muchas veces para acceder a una serie de luces, interruptores u otros elementos mapeados de registro.
En este caso, asignar un carácter completo, byte o int a cada interruptor sería ineficiente y tonto, un interruptor o luz tiene 2 posiciones - encendido y apagado - ¿por qué asignaría algo que tiene hasta 256 posiciones, o 2 ^ 16 posiciones, etc. Cada luz en una matriz puede ser de 1 bit que se ajuste a 8 o 16 o 32 o 64 o 128 (ancho de su tipo de datos) en una sola palabra / registro. La eficiencia del espacio es necesaria y bastante bienvenida.
Usar cualquier cosa que sea básica 2 ^ n en la programación para cosas como manejar datos RGB, muchos datos de señal (GPS, audio, ascii, etc.) es mucho más simple en hexadecimal, binario y octal, ya que así es como se representa en la máquina y uno puede discernir más fácilmente lo que se presenta y cómo manipularlo.
UTILIZANDO BASES EXTRAÑAS
No hay eficiencia a menos que lo codifique. Desea la base 11, debe configurar un tipo de datos y sobrecargar a los operadores para que manejen su representación ante el usuario. No veo ninguna razón por la cual un sistema que contenga 5 elementos, y que solo contenga múltiplos de 5 elementos, deba convertirse en la matemática de cinco elementos. Además, es mejor que reces para que quien decida escribir su código para la base 271 lo documente bien o podrías dedicar más tiempo a comprenderlo de lo que vale para crear la base 271 porque todos los elementos son múltiplos de 271.