MiServe DevTools

I tuoi adesivi

Fissa qui gli strumenti. Restano salvati in questo browser.

Convertitore di basi numeriche

Converti un intero di qualsiasi dimensione tra binario, ottale, decimale, esadecimale e qualsiasi base da 2 a 36, con le sue rappresentazioni in complemento a due.

Numero di bit del valore assoluto
Bit necessari come intero con segno (complemento a due)
Come intero a larghezza fissa (complemento a due)
LarghezzaHexBinarioLetto con segnoLetto senza segno
8 bit
16 bit
32 bit
64 bit

Funziona nel tuo browser. Nulla di ciò che incolli viene caricato.

Informazioni su questo strumento

Lo stesso numero in basi diverse

La base, o radice, è il numero di cifre distinte che usa una notazione posizionale. Il decimale ne ha dieci, il binario due, l'ottale otto e l'esadecimale sedici, e prende in prestito le lettere da a a f per i valori da dieci a quindici. Le basi fino a 36 proseguono con l'alfabeto fino a z.

Il binario è il modo in cui l'hardware memorizza i numeri. L'esadecimale ne è la forma compatta, perché una cifra esadecimale corrisponde esattamente a quattro bit e due cifre a un byte. L'ottale si usa ancora per i permessi dei file Unix, dove ogni cifra vale tre bit.

Tutti i campi di questa pagina mostrano lo stesso intero. Modificane uno qualsiasi e gli altri si aggiornano.

Che cosa puoi scrivere

Le cifre possono essere separate da spazi o underscore, come in 1111_0000 o 1 000 000, e il numero può iniziare con un segno meno. I prefissi 0b, 0o e 0x selezionano binario, ottale ed esadecimale in qualsiasi campo in cui la lettera non sia essa stessa una cifra: 0xff scritto nel campo decimale viene letto come 255, mentre 0b1 nel campo esadecimale è il numero esadecimale B1.

La conversione usa il BigInt di JavaScript, un tipo intero a precisione arbitraria, quindi nulla viene arrotondato. L'unico limite di dimensione è quello che il motore JavaScript del browser impone a un BigInt, e un numero che lo supera viene segnalato nel suo campo. I numeri oltre 9.007.199.254.740.991, dove i normali numeri JavaScript iniziano a perdere precisione, vengono convertiti in modo esatto. Sono supportati solo gli interi, non le frazioni.

Numeri negativi e complemento a due

I campi mostrano un numero negativo come un segno meno seguito dal suo valore assoluto. I computer lo memorizzano in un altro modo: in complemento a due, un valore negativo viene memorizzato come quel valore più due elevato alla larghezza. Con 8 bit quella potenza è 256, quindi -1 viene memorizzato come 255, cioè ff, e -128 come 128, cioè 80.

La tabella mostra lo schema di bit a 8, 16, 32 e 64 bit quando il valore ci sta, e che cosa significa quello schema riletto come intero con segno e senza segno. Ecco perché 255 e -1 condividono lo schema ff a 8 bit.

Domande

Come si converte a mano da binario a decimale?

Ogni cifra binaria vale una potenza di due, a partire da 1 a destra. Somma le potenze in cui la cifra è 1: 1011 è 8 + 2 + 1, cioè 11.

Perché l'esadecimale è così usato in programmazione?

Una cifra esadecimale rappresenta esattamente quattro bit, quindi un byte è sempre formato da due cifre esadecimali. Così dump di memoria, colori, hash e maschere di bit sono molto più corti che in binario e restano facili da ricondurre ai bit.

Quanto può essere grande un numero da convertire?

Lo strumento non impone un limite proprio. Usa interi a precisione arbitraria, quindi i numeri con migliaia di cifre vengono convertiti in modo esatto. Gli input molto lunghi richiedono più tempo di calcolo, e il motore JavaScript di ogni browser ha una dimensione massima per un singolo intero. Un numero oltre quella dimensione viene segnalato nel suo campo.

Che cos'è il complemento a due?

È il modo in cui quasi tutti i computer memorizzano gli interi con segno. Il bit più alto ha un peso negativo, quindi un valore a 8 bit va da -128 a 127 e -1 viene memorizzato come otto bit a 1.

Altri strumenti in Codifica