Convertitore di basi numeriche — Binario, esadecimale, decimale, ottale e basi 2–36

Converti interi di qualsiasi dimensione tra binario, ottale, decimale, esadecimale, base 32, base 36 e qualsiasi base da 2 a 36, con vista in complemento a due.

Scrivi in un campo qualsiasi. Sono accettati i prefissi 0x, 0b e 0o, un segno meno iniziale e spazi, virgole o trattini bassi tra le cifre.

16 bit · 2 byte (valore assoluto) · 5 cifre decimali

Complemento a due (larghezza fissa)

LarghezzaSequenza di bitHexCon segnoSenza segno
8 bit
overflow, troncato
1110 11110xEF-17239
16 bit1011 1110 1110 11110xBEEF-1665748879
32 bit0000 0000 0000 0000 1011 1110 1110 11110x0000BEEF4887948879
64 bit0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1011 1110 1110 11110x000000000000BEEF4887948879

Se il valore è fuori intervallo per una larghezza, la sequenza contiene solo i bit meno significativi: è ciò che fa un cast a int8_t/int16_t/int32_t/int64_t in C, Java o Go.

Funziona interamente nel tuo browser. Nulla di ciò che inserisci viene inviato a noi o salvato. Sfoglia tutti gli strumenti gratuiti.

Hai trovato un problema o qualcosa che potrebbe andare meglio? Leggiamo ogni messaggio e sistemiamo le cose in fretta.

Questo convertitore di basi numeriche mostra un intero in binario, ottale, decimale, esadecimale, base 32 e base 36 contemporaneamente, più qualsiasi base da 2 a 36 a tua scelta. Ogni riga è modificabile: scrivi un valore esadecimale nel campo esadecimale e binario, decimale e gli altri si aggiornano. Prefissi come 0x e 0b, il segno meno e spazi, virgole o trattini bassi tra le cifre sono tutti accettati, così puoi incollare direttamente dal codice o da un datasheet. Per convertire molti valori in una volta, passa alla modalità elenco, incolla un numero per riga e ottieni una tabella con tutte le basi da copiare o scaricare in CSV.

I numeri sono gestiti come interi a precisione arbitraria, quindi un ID a 64 bit, un hash a 256 bit o un decimale di 300 cifre vengono convertiti esattamente, mentre gli strumenti basati sui normali numeri JavaScript arrotondano silenziosamente tutto ciò che supera 9.007.199.254.740.991. La tabella del complemento a due mostra come il valore viene memorizzato in interi a 8, 16, 32 e 64 bit con e senza segno, e segnala l'overflow. I numeri frazionari vengono rifiutati con una spiegazione anziché convertiti in modo approssimato: molte frazioni decimali non hanno una forma binaria esatta.

Come si usa

  1. Scrivi un numero nel campo della base in cui è espresso, per esempio 0xBEEF in Esadecimale o 1011 in Binario.
  2. Leggi le altre basi negli altri campi; copia quella che ti serve con il relativo pulsante.
  3. Per una base insolita, sceglila nel menu Qualsiasi base e scrivi in quel campo.
  4. Consulta la tabella del complemento a due per vedere la sequenza di bit a larghezza fissa o l'aspetto di un numero negativo in esadecimale.
  5. Disattiva il raggruppamento delle cifre se ti serve la stringa semplice per il codice.

Domande frequenti

Posso convertire un elenco di numeri in una volta?

Sì. Scegli "Elenco di numeri (in blocco)", incolla fino a 2.000 numeri, uno per riga, e seleziona la base di input (oppure lasciala su Automatica, che riconosce i prefissi 0x, 0b e 0o). Ogni riga viene convertita in decimale, binario, ottale, esadecimale, base 32, base 36 e una base aggiuntiva a tua scelta; una riga non valida mostra il proprio errore e le altre vengono comunque convertite. Copia la tabella o scaricala in CSV.

Come si converte da binario a decimale?

Moltiplica ogni cifra binaria per 2 elevato alla sua posizione, contando da 0 a destra, e somma i risultati. Per 1011: 1×8 + 0×4 + 1×2 + 1×1 = 11. Oppure scrivilo nel campo Binario qui sopra e leggi il campo Decimale.

Come si converte da esadecimale a decimale?

Ogni cifra esadecimale vale 16 volte la cifra alla sua destra, e A–F stanno per 10–15. Per 0x2F: 2×16 + 15 = 47. Ogni cifra esadecimale corrisponde anche esattamente a quattro cifre binarie (F = 1111), ed è per questo che l'esadecimale si usa come modo compatto di scrivere il binario.

Che cos'è il complemento a due?

È il modo in cui i computer memorizzano gli interi negativi. In un intero a n bit, un numero negativo −x viene memorizzato come 2^n − x. Quindi −1 a 8 bit è 11111111 (0xFF) e −128 è 10000000. La stessa sequenza di bit si legge 255 senza segno o −1 con segno; la tabella mostra entrambi. Il vantaggio è che addizione e sottrazione funzionano allo stesso modo per valori con e senza segno.

Perché il mio convertitore dà risultati sbagliati con i numeri grandi?

La maggior parte dei convertitori usa i numeri JavaScript, che sono in virgola mobile a 64 bit e rappresentano gli interi esattamente solo fino a 2^53 − 1 (9.007.199.254.740.991). Oltre questo valore le cifre vengono arrotondate senza avviso, quindi un ID di database a 64 bit o uno snowflake ID di Twitter/X viene convertito in modo errato. Questo convertitore usa BigInt, che non ha limiti di dimensione.

Posso convertire frazioni come 0,1 in binario?

Non qui, di proposito. 0,1 in decimale è una frazione periodica in binario (0,000110011…), quindi qualsiasi risultato finito è un'approssimazione, ed è proprio questo arrotondamento il motivo per cui 0.1 + 0.2 non fa 0.3 nella maggior parte dei linguaggi di programmazione. Questo strumento converte gli interi in modo esatto; per lavorare con le frazioni, trasformale prima in interi (per esempio, memorizza i centesimi invece degli euro).

Dove si usa ciascuna base

• Binario (base 2): flag di bit, maschere di rete, registri hardware, campi di bit dei permessi.

• Ottale (base 8): permessi dei file Unix, dove 755 significa rwxr-xr-x perché ogni cifra ottale corrisponde esattamente a tre bit (proprietario, gruppo, altri).

• Esadecimale (base 16): indirizzi di memoria, codici colore (#244B3F), dump di byte, hash, indirizzi MAC e code point Unicode (U+1F332).

• Base 32 (0–9, A–V): identificatori compatti. Nota che il Base32 dell'RFC 4648 usato per i segreti TOTP è una codifica di byte con l'alfabeto A–Z, 2–7, non questa base numerica.

• Base 36 (0–9, A–Z): la rappresentazione alfanumerica più compatta che non distingue maiuscole e minuscole, usata per ID brevi e accorciatori di URL; Number.prototype.toString(36) di JavaScript la produce.

Interi a larghezza fissa e overflow

I linguaggi di programmazione memorizzano gli interi in larghezze fisse: int8/uint8 (un byte), int16, int32 e int64. Un intero con segno a n bit va da −2^(n−1) a 2^(n−1) − 1, quindi un int8 va da −128 a 127 e un int32 da −2.147.483.648 a 2.147.483.647. La versione senza segno va da 0 a 2^n − 1.

Quando un valore non ci sta, la maggior parte dei linguaggi conserva solo gli n bit meno significativi. Ecco perché 200 memorizzato in un int8 viene riletto come −56 e perché 2.147.483.647 + 1 in un int a 32 bit diventa −2.147.483.648. La tabella del complemento a due mostra questa sequenza troncata e segna la riga come in overflow, così è facile prevedere cosa produrrà un cast in C, Java, Go o Rust.

Strumenti gratuiti correlati

  • Selettore e convertitore di colori — Preleva qualsiasi colore da qualsiasi punto dello schermo o converti all'istante tra HEX, RGB e HSL.
  • Generatore di hash — Calcola l'hash di testo o file con MD5, SHA-1, SHA-256, SHA-384, SHA-512 e CRC32, verifica un checksum o calcola un HMAC. I file non lasciano mai il tuo dispositivo.
  • Convertitore di timestamp Unix — Converti secondi, millisecondi, microsecondi o nanosecondi epoch in date in qualsiasi fuso orario, e viceversa. Orologio in tempo reale, modalità batch, snippet di codice.
  • Calcolatrice online — Una calcolatrice pulita in stile iPhone che funziona con tastiera e tastierino numerico. Percentuale, cambio segno, cronologia, copia: niente pubblicità, niente da installare.