Honnêtement, c'est une préférence, si pour une raison quelconque vous avez une polydactylie et avez 11 doigts ou si vous aimez compter avec vos orteils, vous aimez donc travailler en base 20, c'est à vous de décider. Mais réalisez que sur un sujet d'universalité que la plupart d'entre nous qui traitons quotidiennement de bits et d'octets sera vraiment coché si nous obtenons quelque chose qui fait de la manipulation de bits en base 19.
RAISONS DE BASE x
Base 10 - Modèle de toutes nos affaires car nous avons 10 chiffres de comptage (les pieds sont étranges et malodorants, nous ne les utilisons pas).
Base 2 - Les ordinateurs l'utilisent pour les bits (marche / arrêt). Cela est lié aux niveaux de tension lisibles qui sont propagés par des portes / transistors / condensateurs.
Base 8 - Vieux, à l'époque où les ordinateurs n'étaient pas super énormes (ou à l'époque quand ils occupaient l'espace), c'était bon pour quelque chose ou autre (je n'aime pas ça du tout)
Base 16 - Idéal pour afficher les octets supérieurs et inférieurs d'un octet pour la manipulation de bits. Ceci est super utile dans le monde embarqué / fpga / hardware.
BASES NORMALES EN INFORMATIQUE
Pour aller avec préférence, je pourrais vous dire exactement comment "sur" une couleur est dans une valeur hexadécimale RVB qui m’a été donnée, cela peut donc être représenté dans un seul int dans le matériel et ensuite avec quelques décalages peut me être rendu easy-peasy, 1 couleur complexe = 1 point de données, idéal pour le traitement d'images de grande taille avec une mémoire limitée. Comparez cela à une représentation en base 10, vous pouvez les ajouter tous et les stocker dans un nombre, mais quel nombre correspond à quel nombre, ou peut-être que R correspond au temps 10000, G à 100, et B à son propre espace, ce qui représente de nombreuses opérations mathématiques , les multiplications coûtent généralement plus de cycles qu’une équipe, de sorte que votre prochain élément de données est déjà dans la file d’attente avant que vous n’ayez terminé, votre dernier élément étant en cours de traitement, oups, il n’est plus là.
Parfois, il est tout simplement préférable de travailler en base 2, 8 ou 16. Avec la plupart des machines, multiplier par 2 équivaut à changer un peu. Celles-ci sont super rapides. Même chose avec une division par 2.
Pour exposer encore plus loin l'idée d'un peu de tournage. Dans de nombreux environnements intégrés, j'ai souvent eu besoin d'accéder à un ensemble de lumières, de commutateurs ou à d'autres éléments mappés dans des registres.
Dans ce cas, attribuer un caractère entier, un octet ou un entier à chaque commutateur serait à la fois inefficace et ridicule, un commutateur ou une lampe a 2 positions - allumée et éteinte - pourquoi attribuer quelque chose ayant jusqu'à 256 positions ou 2 ^ 16 positions etc. Chaque lumière dans un tableau peut être un bit d’ajustement 8 ou 16 ou 32 ou 64 ou 128 (largeur de votre type de données) sur un seul mot / registre. L'efficacité de l'espace est nécessaire et plutôt bienvenue.
Utiliser tout ce qui est en base 2 ^ n dans la programmation pour la manipulation de données RVB, beaucoup de données de signal - GPS, audio, ASCII, etc. - est beaucoup plus simple en hexadécimal, binaire et octal puisque c'est ainsi qu'il est représenté dans la machine et que l'on peut plus facilement discerner ce qui est présenté et comment le manipuler.
UTILISER DES BASES STRANGE
Il n'y a pas d'efficacité à moins que vous ne codiez pour cela. Vous voulez la base 11, vous devez configurer un type de données et surcharger tous les opérateurs pour gérer sa représentation à l'utilisateur. Je ne vois aucune raison pour laquelle un système contenant 5 éléments et ne disposant que de multiples de 5 éléments devrait être converti en calcul de 5 éléments. Et de plus, vous feriez mieux de prier pour que celui qui a décidé d’écrire son code pour la base 271 l’ait bien documenté ou vous puissiez passer plus de temps à le comprendre que de créer de la base 271 car tous les éléments sont un multiple de 271.