Salta al contenuto principale
CalcMax

Calcolatrice di basi numeriche

Intervallo: 2 – 36

Risultato

10001

Risultato

Decimale
17
Resto
0

Una calcolatrice di basi numeriche legge, scrive e calcola in una base qualsiasi da 2 a 36. Una base è la regola che trasforma una sequenza di cifre in un valore: moltiplichi ogni cifra per la base elevata alla potenza della sua posizione, contando da zero a destra, e sommi i risultati. In base 2 le cifre sono soltanto 0 e 1 e ogni passo verso sinistra raddoppia, quindi 1011 è 1×8 + 0×4 + 1×2 + 1×1, cioè 11. In base 16 le cifre vanno da 0 a 9 e poi da A a F, e ogni passo verso sinistra moltiplica per 16, quindi FF è 15×16 + 15, cioè 255. Questa pagina ti lascia scegliere la base e poi sommare, sottrarre, moltiplicare o dividere dentro quella base. Una base non è un tipo diverso di numero: è un modo diverso di scrivere gli stessi numeri, ed è per questo che il pannello dei risultati stampa affiancate le due letture della stessa risposta. 1011 più 110 in base 2 dà 10001, e 10001 in base 2 è 17, perché 11 più 6 fa 17: entrambe le righe dicono la stessa cosa, e la riga decimale serve a chi non passa la giornata in un'altra base. Tre cose vale la pena sapere prima di cominciare. Le cifre oltre il nove hanno bisogno di simboli, e per convenzione le lettere da A a Z valgono da dieci a trentacinque, ed è questo che rende la base 36 la più grande che si possa scrivere con i tasti di una tastiera. Una cifra è lecita solo se è minore della base, quindi 2 non è una cifra in base 2 e 1012 non è un numero binario anche se ne ha l'aspetto. E la base non fa parte della risposta: 10001 vale diciassette solo perché hai detto che la base era due, quindi la pagina stampa le cifre e lascia la base al campo che hai scelto. L'aritmetica è quella di sempre e cambia solo la scrittura. L'addizione riporta quando una colonna raggiunge la base invece di dieci, ed è per questo che FF più 1 diventa 100 invece di fermarsi a FG: la G non esiste, perché sedici non è una cifra. La divisione è il punto in cui il calcolo in una base diversa si guadagna il suo posto, perché dividere un numero per un altro dà un quoziente e un resto e qui vengono stampati entrambi nella base che hai scelto. La riga del resto c'è sempre: per addizione, sottrazione e moltiplicazione vale 0, perché non avere niente che avanza e avere resto zero sono la stessa affermazione quando si lavora con numeri interi. La sottrazione può scendere sotto zero, e la risposta porta allora un segno meno scritto nel modo normale: il segno non fa parte dell'insieme delle cifre.

Il numero 255 scritto in base 2, 8, 10 e 16, con i suoi valori posizionali spiegati

BaseScritto in quella baseValori posizionali
211111111128 + 64 + 32 + 16 + 8 + 4 + 2 + 1
83773×64 + 7×8 + 7
102552×100 + 5×10 + 5
16FF15×16 + 15

Leggi la colonna centrale e lo stesso valore compare in quattro modi: 11111111, 377, 255 e FF. Fra una riga e l'altra del numero non è cambiato niente, solo i simboli e l'ampiezza dei passi. La terza colonna è l'aritmetica che riporta ogni scrittura a 255: in base 2 ci sono otto uno, quindi compaiono tutte le potenze da 128 fino a 1; in base 16 le cifre sono solo due, ma la prima viene moltiplicata per 16 invece che per 2. Nota come la larghezza cala mentre la base sale. La base 2 ha bisogno di otto cifre per dire 255, la base 8 di tre, la base 10 di tre e la base 16 di due: una base più grande dice lo stesso valore in meno posizioni, perché ogni posizione vale di più. È tutto qui il motivo per cui le basi esistono. La base 16 si usa per i byte non perché sia matematicamente speciale, ma perché due sue cifre coprono esattamente un byte, e la base 2 si usa al livello sotto perché un filo che può solo essere acceso o spento ha esattamente due stati. La tabella non segue i numeri che hai digitato: il pannello qui sopra risponde a quelli, questa mostra un valore in quattro scritture. I numeri dentro la tabella sono calcolati dalla pagina e usano il punto come separatore decimale, mentre il testo che stai leggendo usa la virgola: sono lo stesso numero scritto in due modi, non un errore.

Formula

1011 + 110 = 10001 in base 2, e 11 + 6 = 17 in base 10 ⇒ 10001 in base 2 è 17, un solo valore scritto in due modi

b
La base, un numero intero da 2 a 36. È un campo numerico semplice e non un elenco di trentacinque scelte, quindi i limiti sono imposti sul campo stesso: 1 e 37 vengono rifiutati prima che il calcolo cominci. La base 1 è impossibile perché con un solo simbolo non si può contare oltre lo zero, e la base 37 richiederebbe un trentasettesimo simbolo che nessuna tastiera possiede
1011
Undici scritto in base 2: 1×8 + 0×4 + 1×2 + 1×1. Leggilo da destra verso sinistra, perché è la direzione in cui corrono le potenze. Lo stesso undici in base 10 è 11, in base 8 è 13 e in base 16 è B
10001
La risposta a 1011 + 110, sempre in base 2: 1×16 + 0×8 + 0×4 + 0×2 + 1×1, cioè 17. Lungo la strada sono successi due riporti — la colonna delle unità ha raggiunto 2 e quella dei quattro ha raggiunto 2 — e ogni riporto si è spostato di una posizione verso sinistra, esattamente come si sposta un riporto in base 10 quando una colonna arriva a dieci
FF
Quindici per sedici più quindici, cioè 255. La base 16 è la base che entra esatta in un byte: due cifre esadecimali coprono ogni valore da 0 a 255, ed è per questo che questa base compare ovunque compaiano i byte. Da A a F sono le sei cifre oltre il nove
17 ÷ 5 = 3 con resto 2
La divisione scritta per esteso. In base 2 la stessa divisione è 10001 ÷ 101 = 11 con resto 10, e la pagina stampa il quoziente come risultato e il resto su una riga propria. Il resto è sempre minore del divisore: è questo che lo rende un resto invece di una frazione
da A a Z
Le ventisei cifre in più che portano la base 10 fino alla base 36. A vale dieci, B vale undici e Z vale trentacinque. Funzionano sia le maiuscole sia le minuscole, e la pagina stampa le maiuscole

Leggere un valore da un sistema che parla un'altra base è l'uso di ogni giorno. Un dump di memoria stampa i byte come coppie di cifre esadecimali, i permessi di un file si vedono come 755 perché ognuna delle tre cifre impacchetta tre bit, una maschera di sottorete è fatta di quattro gruppi da otto bit e un indirizzo IPv6 è esadecimale dall'inizio alla fine. In ognuno di questi casi il valore decimale non è quello che ti serve: quello che ti serve è vedere la base che vede la macchina. Scrivere verso gli stessi sistemi è il caso speculare, perché impostare il pattern di bit di un registro, comporre un colore dai suoi byte rosso, verde e blu oppure capire perché un valore spostato è uscito negativo significa fare aritmetica in una base che non è dieci. A scuola il calcolo in base diversa si insegna come la cosa che mostra che un sistema di numerazione posizionale è una scelta e non un fatto, e gli esercizi sono esattamente quello che fa questa pagina: riportare in base 2, prendere in prestito in base 8 e vedere che la stessa operazione dà la stessa risposta in ogni base, una volta che entrambi i lati si leggono nella stessa. Un quarto uso è il controllo del proprio lavoro: se 1011 più 110 in base 2 dà qualcosa di diverso da 17 in decimale, una delle due letture è sbagliata, e avere entrambe sulla pagina è ciò che rende possibile accorgersene. Quando la base è proprio 2 o proprio 16 le pagine dedicate vanno più a fondo: la calcolatrice binaria e quella esadecimale sono questa stessa aritmetica con la base già riempita, e la conversione tra basi senza operazioni in mezzo è il mestiere dei convertitori.

Esempi svolti

  1. Sommare in base 2: 1011 + 110

    1. Leggi i due operandi in decimale per sapere che cosa stai sommando: 1011 è 11 e 110 è 6
    2. 11 + 6 = 17
    3. Scrivi 17 in base 2: 17 = 16 + 1, quindi le cifre sono 1 0 0 0 1
    4. La risposta in base 2 è 10001, e la riga decimale conferma che si tratta di 17

    L'ingresso predefinito, e lo stesso che la tabella qui sotto ripercorre in un'altra base. Sommare le due stringhe colonna per colonna dà la stessa risposta: 1 + 0 fa 1, 1 + 1 fa 0 con riporto di 1, poi 0 + 1 più il riporto fa 0 con riporto di 1, e l'ultimo riporto cade in una colonna nuova a sinistra. Riportare quando una colonna raggiunge il 2 è tutta l'addizione in base 2: sono i riporti a rendere 10001 largo cinque cifre quando gli operandi ne avevano quattro e tre.

  2. Riportare oltre l'ultima cifra: FF + 1 in base 16

    1. FF è 15×16 + 15 = 240 + 15 = 255
    2. Aggiungere 1 dà 256
    3. Scrivi 256 in base 16: 256 = 1×256 + 0×16 + 0, quindi le cifre sono 1 0 0
    4. La risposta è 100 in base 16, che vale 256 e non cento

    La trappola per cui questo esempio esiste: 100 è un numero piccolo in base 10 e molto più grande in base 16. Una lettura colonna per colonna mostra perché esce così largo — F più 1 fa sedici, che non è una cifra in base 16, quindi riporta e lascia 0 dietro di sé, e l'uno riportato atterra su una F piena, che riporta di nuovo. Una sola addizione ha spostato la risposta di due posizioni. È lo stesso evento di 99 + 1 che dà 100 in base 10, ed è la ragione per cui un byte che trabocca da 255 a 256 ha bisogno di un secondo byte.

  3. Divisione con resto: 1011 ÷ 10 in base 2

    1. 1011 è 11 e 10 è 2
    2. 11 ÷ 2 = 5 con resto 1
    3. Scrivi 5 in base 2: 5 = 4 + 1, quindi le cifre sono 1 0 1
    4. Il quoziente è 101 e la riga del resto legge 1 — e 101 vale 5, come conferma la riga decimale

    L'unica delle quattro operazioni il cui resto non è zero, ed è per questo che la riga del resto sta sulla pagina. Nota che il quoziente è solo la parte intera: undici diviso due fa cinque e mezzo, e la pagina stampa 101 con resto 1 invece di 10,1 o 101,1, perché un resto tiene la risposta fra i numeri interi — quella metà sta dentro quell'1. Il controllo è 5 × 2 + 1 = 11, e regge in ogni base.

Limiti

La base deve essere un numero intero da 2 a 36. Uno è impossibile perché una sola cifra non può esprimere alcun valore diverso da zero, e trentasette richiederebbe un trentasettesimo simbolo: il campo rifiuta entrambi prima che il calcolo cominci. I decimali e le frazioni vengono rifiutati invece di essere arrotondati, e lo stesso vale per un segno meno davanti a un operando, perché la pagina legge cifre e un segno o un punto non è una cifra. Una cifra troppo grande per la base che hai scelto è un caso a parte, e vale la pena dire con chiarezza come viene trattata. Digita 1012 con la base impostata su 2 e otterrai un errore di calcolo generico invece di un messaggio che nomina la cifra colpevole. È uno scambio voluto e non una dimenticanza: il controllo sul campo di ingresso riceve la stringa e nient'altro, quindi non può leggere il campo della base che gli sta accanto, e le opzioni oneste erano accettare qualsiasi stringa di cifre che potrebbe essere lecita in qualche base, oppure accettare qualsiasi cosa. La pagina ha preso la prima. L'effetto pratico è che il campo resta pulito e l'errore compare nel pannello dei risultati: la risposta non è mai sbagliata, è solo spiegata meno bene. Entrambi gli operandi sono limitati a sessanta caratteri e al più grande numero intero che un double può contenere esattamente, 9.007.199.254.740.991, che è lungo sedici cifre in base 10 e circa cinquanta in base 2. La risposta è soggetta allo stesso tetto: viene calcolata esattamente e poi controllata, quindi un'operazione il cui risultato lo supera viene rifiutata invece di essere stampata come valore arrotondato. Le lettere si possono digitare in maiuscolo o in minuscolo e vengono stampate in maiuscolo, quindi ff e FF sono lo stesso ingresso. Gli zeri iniziali sono accettati e ignorati, il che significa che 00001011 e 1011 sono lo stesso numero ed entrambi vengono stampati come 1011. Il campo accetta solo cifre e lettere: qui si scrive 9007199254740991, senza i punti di separazione delle migliaia, perché è la stessa funzione che legge il valore a rifiutarli. La tabella di riferimento qui sotto è fissa a 255 nelle basi 2, 8, 10 e 16 e non segue quello che hai digitato: il pannello risponde ai tuoi numeri, la tabella mostra le quattro scritture di un solo valore.

Domande frequenti

Come faccio a sommare due numeri in una base che non è dieci?
Sommi colonna per colonna da destra, esattamente come in base 10, ma riporti quando una colonna raggiunge la base invece di quando raggiunge dieci. In base 2 l'unica soglia di riporto è il 2: 1 + 1 fa 0 con riporto di 1. Così 1011 + 110 fa 10001, perché la colonna dei due e quella dei quattro sono traboccate entrambe e hanno spinto un 1 nella posizione successiva. Se preferisci non tenere il conto dei riporti, converti i due operandi in decimale, fai lì l'aritmetica e riconverti: è quello che mostra la riga decimale di questa pagina, e dà la stessa risposta ogni volta.
Perché 1012 non è accettato quando la base è 2?
Perché 2 non è una cifra in base 2: le cifre sono 0 e 1 e nient'altro. La regola è che una cifra deve essere minore della base, quindi la base 2 ammette 0 e 1, la base 8 ammette da 0 a 7, la base 10 ammette da 0 a 9 e la base 16 ammette da 0 a 9 e da A a F. Lo vedrai come un errore di calcolo generico invece che come un messaggio che nomina la cifra, e questo è un limite noto: il controllo sul campo di ingresso vede solo la stringa che hai digitato, non la base che hai scelto, quindi accetta qualsiasi sequenza di cifre che potrebbe essere lecita in qualche base e lascia alla fase di calcolo il controllo specifico. La risposta non è mai sbagliata, ma la spiegazione è più magra di quanto dovrebbe.
Quali basi posso usare, e perché si ferma a 36?
Qualsiasi numero intero da 2 a 36. Il tetto è una tastiera, non la matematica: le cifre oltre il nove hanno bisogno di simboli, i simboli convenzionali sono le lettere da A a Z e sono ventisei, e dieci più ventisei fa trentasei. La base 1 è impossibile per un motivo diverso: con una sola cifra non puoi scrivere alcun valore sopra lo zero, perché ogni posizione varrebbe 1 e non ci sarebbe modo di arrivare a 2.
100 in base 16 è uguale a cento?
No, ed è l'errore che il secondo esempio della pagina esiste per evitare. In base 16, 100 significa 1×256 + 0×16 + 0, cioè 256. Le cifre sono gli stessi caratteri, ma le posizioni valgono sedici volte tanto a ogni passo invece di dieci, quindi gli stessi tre simboli indicano un valore diverso. La riga decimale sulla pagina è lì proprio perché tu non debba mai indovinare quale lettura è quella giusta.
Perché il resto viene mostrato sempre, anche per una somma?
Perché fra i numeri interi non lasciare resto e lasciare resto zero sono la stessa affermazione, e una riga che compare e scompare è più difficile da leggere di una riga che c'è sempre. Per addizione, sottrazione e moltiplicazione la riga legge 0. Solo la divisione può produrre un resto diverso da zero, e lì la riga porta la parte che non si è divisa esattamente: 1011 ÷ 10 in base 2 lascia 1, che è la metà di 11 ÷ 2 che il quoziente ha buttato via.
Posso fare aritmetica in base 10 su questa pagina?
Sì, ed è un modo utile per verificare che la pagina vada d'accordo con una calcolatrice normale: imposta la base a 10 e tutto si comporta esattamente come ti aspetti, perché le cifre, i riporti e il formato della risposta non cambiano. Quello che guadagni è la riga del resto e la dichiarazione esplicita della base, e quello che perdi non è niente. Le pagine vicine vanno nella direzione opposta: la calcolatrice binaria e quella esadecimale sono questa stessa aritmetica con la base già impostata a 2 e a 16, e i convertitori si occupano di passare un valore da una base all'altra senza operazioni in mezzo.

Riferimenti

Calcolatrici correlate