Convertitore base numerica

Converti tra binario, ottale, decimale ed esadecimale.

I tuoi dati non lasciano il tuo dispositivo
Binario (base 2)
Ottale (base 8)
Decimale (base 10)
Esadecimale (base 16)

Capire le basi numeriche

Una base numerica (o radix) determina quante cifre uniche servono per rappresentare i numeri. La più familiare è la base 10 (decimale), che usa le cifre 0-9. I computer usano nativamente la base 2 (binario), con solo 0 e 1.

Domande frequenti

Supporta numeri molto grandi?

Sì. Questo strumento usa BigInt di JavaScript, che supporta interi arbitrariamente grandi senza perdita di precisione. Puoi convertire numeri di centinaia di cifre.

Perché il binario è importante in informatica?

I computer usano segnali elettrici a due stati (on/off), che corrispondono naturalmente al binario (1/0). Tutti i dati · testo, immagine, video · vengono in definitiva memorizzati ed elaborati in binario.

Come funziona la notazione posizionale

Un sistema numerico posizionale rappresenta un numero usando un insieme di dimensione fissa di simboli di cifre, dove la posizione di ogni cifra ne determina il peso. Il peso della posizione i (contata da destra, partendo da zero) è base^i. Il valore del numero è la somma di digit × base^i su tutte le posizioni. La stringa 352 in base 10 significa 3×100 + 5×10 + 2×1 = 352. La stringa 1011 in base 2 significa 1×8 + 0×4 + 1×2 + 1×1 = 11 in decimale.

La notazione posizionale è una delle due grandi invenzioni nella rappresentazione dei numeri. L'altra è quella non posizionale (numeri romani, ieratico egizio), dove i simboli hanno valori fissi indipendentemente dalla posizione. I sistemi posizionali comprimono; quelli non posizionali no, il numero 1.888 occupa quattro cifre in decimale ma otto caratteri in romano: MDCCCLXXXVIII.

Una breve storia delle basi

I Babilonesi usavano un sistema posizionale in base 60 (sessagesimale) almeno già nel periodo paleo-babilonese, intorno al 1900-1600 a.C. Le tavolette cuneiformi di quell'epoca usano già la notazione posizionale. Perché 60? Ha un numero straordinariamente alto di piccoli divisori (1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60), il che rendeva più facile l'aritmetica delle frazioni in un mondo privo di frazioni decimali. L'eredità babilonese è ancora nella tua tasca: il tempo (60 secondi in un minuto, 60 minuti in un'ora) e gli angoli / le coordinate geografiche (360 gradi in un cerchio, 60 minuti d'arco per grado, 60 secondi d'arco per minuto) ne sono diretti discendenti. Quando leggi un orologio o una latitudine, stai leggendo in sessagesimale.

Il sistema posizionale decimale come lo conosciamo fu sviluppato dai matematici indiani nei primi secoli d.C. Il salto concettuale che lo distingue dalle precedenti tavole di calcolo è un simbolo scritto per lo zero che funge da segnaposto. Il primo uso inequivocabile dello zero in un contesto posizionale è generalmente attribuito a Brahmagupta (628 d.C.), il cui trattato Brāhmasphuṭasiddhānta diede le regole per l'aritmetica con lo zero. Il manoscritto di Bakhshali mostra un uso ancora precedente di un punto (bindu) come segnaposto.

Il sistema decimale viaggiò dall'India al mondo islamico nell'VIII-IX secolo, il poliedrico persiano al-Khwārizmī scrisse Il calcolo con i numeri indiani intorno all'825 d.C. («algoritmo» e «algebra» sono diretti discendenti etimologici del suo nome e dei titoli dei suoi libri). L'Europa rimase indietro. Leonardo da Pisa, noto come Fibonacci, introdusse formalmente i numeri indo-arabici nell'Europa latina nel Liber Abaci (1202), dimostrandone la superiorità sui numeri romani. I numeri romani sopravvissero nella contabilità europea fino al XVI secolo.

Gottfried Wilhelm Leibniz descrisse un sistema numerico interamente binario nel suo articolo del 1703 Explication de l'arithmétique binaire: anche se la sua motivazione principale era filosofica (la corrispondenza con l'I Ching) più che pratica. Il salto verso l'informatica binaria arrivò con la tesi di master del 1937 di Claude Shannon al MIT, «A Symbolic Analysis of Relay and Switching Circuits», che mostrò come l'algebra booleana potesse modellare le reti di relè elettrici, rendendo il binario il linguaggio naturale della logica digitale.

Gli algoritmi di conversione

Da decimale ad altra base, divisione ripetuta. Per convertire un intero decimale N in base b, dividi N per b, annota il resto, sostituisci N con il quoziente e ripeti finché il quoziente non è 0. I resti letti dal basso verso l'alto sono le cifre in base b. Esempio svolto per 156 in binario: 156÷2 = 78 r0, 78÷2 = 39 r0, 39÷2 = 19 r1, 19÷2 = 9 r1, 9÷2 = 4 r1, 4÷2 = 2 r0, 2÷2 = 1 r0, 1÷2 = 0 r1, leggendo i resti dal basso: 10011100. Verifica: 128 + 16 + 8 + 4 = 156.

Da altra base a decimale, metodo di Horner. Parti da 0; per ogni cifra da sinistra a destra, moltiplica il totale corrente per la base e aggiungi la nuova cifra. Esempio svolto per l'esadecimale 1F4: 0×16 + 1 = 1, poi 1×16 + 15 = 31, poi 31×16 + 4 = 500.

Entrambi gli algoritmi vengono eseguiti in tempo lineare rispetto al numero di cifre, e il BigInt di JavaScript li implementa dietro le quinte, motivo per cui questo strumento non ha un tetto di precisione. Un numero di 200 cifre si converte in modo pulito tra due basi qualsiasi senza perdita di arrotondamento, allo stesso modo in cui farebbe una calcolatrice con aritmetica intera a precisione arbitraria.

Le quattro basi che contano nell'informatica

Potenze di 2 da memorizzare

PotenzaDecimaleEsadecimalePerché è importante
2⁸2560x100Un byte; valore massimo di un canale a 8 bit (RGB)
2¹⁰1,0240x400«1K» nel contesto informatico
2¹⁶65,5360x10000Dimensione del BMP di UTF-16; massimo intero a 16 bit
2²⁰1,048,5760x100000«1M» nel contesto informatico
2²⁴16,777,2160x1000000RGB a 24 bit («16,7 milioni di colori»)
2³²~4,3 miliardi0x100000000Massimo intero senza segno a 32 bit; spazio degli indirizzi IPv4
2⁶⁴~1.8×10¹⁹0x100…Massimo intero a 64 bit; ben oltre la precisione in virgola mobile

Quando ricorreresti a un convertitore di base

Altre basi da conoscere

Convenzioni dei prefissi nel codice sorgente

La maggior parte dei linguaggi moderni usa lo stesso insieme di prefissi letterali per disambiguare la base nel codice sorgente:

Altre domande

E i numeri negativi?

I computer rappresentano gli interi negativi usando il complemento a due: inverti tutti i bit e aggiungi 1. Così, nel complemento a due a 8 bit, −1 è 11111111 (0xFF), −5 è 11111011 (0xFB) e −128 è 10000000 (0x80). Il bit più significativo indica il segno. Questo strumento mostra gli interi negativi con un segno meno iniziale anziché con una rappresentazione in complemento a due, perché quest'ultima ha senso solo a una larghezza di bit fissa, e dato che lo strumento usa il BigInt a precisione arbitraria, non c'è una larghezza fissa rispetto a cui interpretarla.

Perché l'esadecimale usa le lettere A-F?

Perché la base 16 ha bisogno di 16 simboli di cifra distinti e le cifre decimali 0-9 ne forniscono solo dieci. La convenzione di usare A-F (senza distinzione tra maiuscole e minuscole) per 10-15 fu resa popolare da IBM System/360 negli anni '60 e standardizzata in tutto il settore. I sistemi precedenti sperimentarono altri glifi (il G-15 di Bendix usava u, v, w, x, y, z) ma A-F prevalse.

Questo strumento può gestire le frazioni?

No, funziona solo con gli interi. La conversione di base frazionaria è più complessa perché la maggior parte delle frazioni decimali non ha una rappresentazione esatta in binario (il famoso problema della virgola mobile 0.1 + 0.2 ≠ 0.3). Per l'ispezione a livello di bit della virgola mobile, un visualizzatore IEEE 754 dedicato è lo strumento giusto.

Viene inviato qualcosa a un server?

No. Le conversioni vengono eseguite nel tuo browser usando l'aritmetica nativa BigInt di JavaScript. Nulla del tuo input lascia la pagina; lo strumento funziona offline una volta caricato.

Strumenti correlati