Convertitore di basi numeriche

Inserisci un intero in una base qualsiasi da 2 a 36 o in Base62 e vedilo contemporaneamente in binario, ottale, decimale, esadecimale, Base36 e Base62. I numeri di qualsiasi lunghezza vengono convertiti in modo esatto.

Funziona interamente nel tuo browser. Non viene caricato nulla.

Come si usa

  1. Inserisci il Numero che vuoi convertire.
  2. In Base di partenza seleziona la base in cui è scritto, da 2 a 36 o Base62.
  3. Leggi il risultato in binario, ottale, decimale, esadecimale, Base36 e Base62 contemporaneamente.
  4. Per qualsiasi altra base, sceglila come destinazione in Base personalizzata.

Numeri, non byte

Questo strumento converte il valore di un numero. Il numero decimale 255 è 11111111 in binario, 377 in ottale, ff in esadecimale e 73 in Base36.

Le codifiche di byte come Base16 e Base2 fanno un’altra cosa: codificano testo o file. Il testo 255 è formato da tre caratteri, memorizzati come i byte 32 35 35 in esadecimale, o 00110010 00110101 00110101 in binario. Usa questa pagina per l’esadecimale di un numero, e i codificatori di byte per l’esadecimale di caratteri o di un file.

Come funzionano le basi posizionali

In ogni base, ciascuna cifra vale la base elevata alla potenza della sua posizione, contata da destra a partire da zero. L’esadecimale ff vale 15 × 16 + 15 = 255, e il binario 11111111 vale 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255. Le basi superiori a 10 proseguono le cifre con le lettere, quindi in Base36 a vale 10 e z vale 35. Base62 aggiunge anche le lettere dell’altro tipo, quindi lì maiuscole e minuscole hanno valori diversi.

Una cifra esadecimale rappresenta esattamente 4 bit e una cifra ottale 3 bit. Per questo i programmatori usano esadecimale e ottale come forma abbreviata del binario: 1111 1111 diventa ff gruppo per gruppo.

Numeri grandi e negativi

Il convertitore usa interi a precisione arbitraria (BigInt di JavaScript), quindi i numeri lunghi restano esatti. Molte calcolatrici e i normali numeri JavaScript perdono precisione oltre 9007199254740991 (2 elevato alla 53, meno 1). Per esempio, parseInt('ffffffffffffffff', 16) restituisce 18446744073709552000, mentre il valore corretto, il più grande intero a 64 bit senza segno, è 18446744073709551615.

Un numero negativo viene convertito con il suo segno meno, quindi -255 è -ff in esadecimale. Non si tratta della rappresentazione in complemento a due usata in memoria per gli interi a larghezza fissa. Per ottenerla, aggiungi prima 2 elevato alla larghezza: per 8 bit, -1 + 256 = 255, cioè ff. Sono supportati solo i numeri interi, non le frazioni. Tutto avviene nel tuo browser.

Conversione di base nel codice

// JavaScript
parseInt('ff', 16);                          // 255
(255).toString(2);                           // '11111111'
BigInt('0xffffffffffffffff').toString(10);   // '18446744073709551615'

# Python
int('ff', 16)                  # 255
bin(255), oct(255), hex(255)   # ('0b11111111', '0o377', '0xff')

Domande frequenti

Come si converte un numero da binario a decimale?

Inserisci il numero binario, seleziona la base 2 e leggi il risultato decimale. A mano, somma i valori posizionali di ogni cifra 1: 1010 in binario è 8 + 2 = 10.

Come si converte un numero da decimale a esadecimale?

Inserisci il numero con la base 10 selezionata e leggi il risultato esadecimale. A mano, dividi ripetutamente per 16 e scrivi i resti in ordine inverso: 255 diviso 16 fa 15 con resto 15, che dà ff.

C’è un limite alla dimensione del numero?

Non esiste un limite fisso. Lo strumento usa l’aritmetica BigInt, quindi un numero con centinaia di cifre viene convertito in modo esatto. I numeri molto lunghi richiedono solo un po’ più di tempo.

Perché l’esadecimale di 255 qui è diverso da quello del codificatore Base16?
Questa pagina converte il numero 255, che è ff. Il codificatore Base16 converte il testo 255, cioè tre caratteri i cui byte sono 32 35 35. Usa quello che corrisponde ai tuoi dati.
Posso convertire numeri con una parte frazionaria?

No. Il convertitore funziona solo con numeri interi. Le frazioni come 0,1 spesso non hanno una rappresentazione esatta in un’altra base, quindi non rientrano nelle sue funzioni.