È onestamente una preferenza, se per qualche motivo hai la polidattilia e hai 11 dita o ti piace contare con le dita dei piedi, quindi ti piace lavorare nella base 20 dipende davvero da te. Ma renditi conto che su un argomento di universalità che la maggior parte di noi che ha a che fare con bit e byte su base giornaliera sarà davvero soddisfatto se otteniamo qualcosa che sta facendo manipolazione dei bit nella base 19.
MOTIVI DELLA BASE x
Base 10 - Modello di tutte le nostre cose perché abbiamo 10 cifre di conteggio (i piedi sono strani e puzzolenti, quindi non li usiamo).
Base 2 - I computer lo usano per i bit (on / off), ciò è correlato ai livelli di tensione leggibili che vengono propagati da gate / transistor / condensatori.
Base 8 - Vecchia, indietro quando i computer non erano molto grandi (o indietro quando erano spaziali) questo andava bene per qualcosa o altro (non mi piace un po ')
Base 16 - Buono per mostrare i nibble superiori e inferiori di un byte per la manipolazione dei bit. Questo è super utile nel mondo embedded / fpga / hardware.
BASI NORMALI NEI COMPUTER
Per andare con preferenza, potrei dirti esattamente come "on" è un colore in un valore RGB esadecimale che mi è stato dato, questo di conseguenza può essere rappresentato in un singolo int in hardware e quindi con alcuni turni può essere restituito a me easy-peasy, 1 colore complesso = 1 punto dati adatto per l'elaborazione di immagini di grandi dimensioni con memoria limitata. Confrontalo con una rappresentazione in base 10, potresti aggiungerli tutti e memorizzarli in un numero, ma quale numero è quale, o forse R è il tempo 10000, G è 100 e B è il suo spazio, sono molte operazioni matematiche , di solito le moltiplicazioni costano più cicli di un turno, quindi il tuo prossimo pezzo di dati è già in coda prima di aver terminato l'elaborazione dell'ultimo pezzo, whoops, che non c'è più.
A volte è semplicemente meglio lavorare nella base 2, 8 o 16. Con la maggior parte delle macchine un moltiplicare per 2 è solo un po 'spostato, quelli sono super veloci, lo stesso con una divisione per 2.
Per spiegare ancora di più l'idea di un po 'di twiddling. Ci sono molte volte quando lavoro in un ambiente incorporato che mi serviva per accedere ad una serie di luci, interruttori o altri elementi mappati sui registri.
In questo caso assegnare un intero carattere, byte o int a ciascun interruttore sarebbe sia inefficiente che sciocco, un interruttore o una luce ha 2 posizioni - acceso e spento - perché dovrei assegnare qualcosa che ha fino a 256 posizioni, o 2 ^ 16 posizioni ecc. Ciascuna luce in un array può essere 1 bit adatta 8 o 16 o 32 o 64 o 128 (larghezza del tipo di dati) su una singola parola / registro. L'efficienza dello spazio è necessaria e piuttosto gradita.
Utilizzando qualsiasi cosa che sia base 2 ^ n nella programmazione di cose come la gestione di dati RGB, molti dati di segnale - GPS, audio, ascii, ecc. - è molto più semplice in esadecimale, binario e ottale poiché è così che viene rappresentato nella macchina e si può discernere più facilmente ciò che viene presentato e come manipolarlo.
UTILIZZANDO BASI STRANE
Non c'è efficienza se non si codifica per esso. Vuoi la base 11, devi impostare un tipo di dati per esso e sovraccaricare tutti gli operatori per gestirne la rappresentazione all'utente. Non vedo alcun motivo per cui un sistema che contenga 5 oggetti e che abbia sempre e solo multipli di 5 oggetti debba essere convertito in matematica a cinque oggetti. E inoltre, faresti meglio a pregare che chiunque abbia deciso di scrivere il proprio codice per la base 271 lo abbia documentato bene o potresti dedicare più tempo a comprenderlo di quanto valga la pena creare la base 271 perché tutti gli elementi sono multipli di 271.