Convertitore di basi numeriche

Converte numeri interi tra binario, ottale, decimale, esadecimale e qualsiasi base fino a 36, con complemento a due e codici di testo.

Il modulo interattivo è disponibile quando JavaScript è attivo.

Come si usa

Scrivi un numero intero e scegli la base in cui è scritto, oppure lascia Automatico: allora 0x indica esadecimale, 0o ottale, 0b binario e tutto il resto decimale. Il risultato mostra il numero in decimale, binario, ottale ed esadecimale, ognuno con il suo pulsante per copiare, e in un’altra base a tua scelta tra 2 e 36. Spazi e trattini bassi tra le cifre vengono ignorati, quindi 1_000_000 funziona.

Le basi oltre 10 usano lettere dopo la cifra 9: a vale 10, f vale 15 e z vale 35, per questo 36 è la base più alta. I numeri di qualsiasi lunghezza vengono convertiti esattamente. I numeri ordinari di JavaScript sono esatti solo fino a 9.007.199.254.740.991 (2⁵³ − 1); oltre, molti convertitori arrotondano le ultime cifre senza dirlo.

Per i numeri negativi, il risultato mostra anche il complemento a due, il modo in cui i processori memorizzano gli interi con segno, a 8, 16, 32 o 64 bit. Un intero con segno a n bit va da −2ⁿ⁻¹ a 2ⁿ⁻¹ − 1, quindi 8 bit vanno da −128 a 127; un numero che non ci sta viene segnalato, e uno positivo che ci sta solo senza segno viene mostrato come senza segno. Le cifre binarie si possono raggruppare a quattro o a otto per leggere meglio i valori lunghi; il pulsante per copiare le copia sempre senza spazi.

La modalità testo trasforma un testo nei byte con cui UTF-8 lo memorizza, in binario, decimale ed esadecimale, con il punto di codice Unicode di ogni carattere, e ritrasforma codici di byte in testo. Tutto avviene nel tuo browser.

Esempio

−5 in complemento a due a 8 bit è 11111011, FB in esadecimale: il processore memorizza 256 − 5 = 251.

  • 255Binario 11111111, ottale 377, esadecimale FF.
  • -5 a 8 bitComplemento a due 11111011, 0xFB.
  • 90071992547409932⁵³ + 1, convertito esattamente: esadecimale 20000000000001. Un numero JavaScript ordinario lo trasformerebbe in …992.
  • € in modalità testoByte UTF-8 E2 82 AC: tre byte per un solo carattere, punto di codice U+20AC.

Domande frequenti

Perché l’esadecimale usa le lettere?

La base 16 ha bisogno di sedici cifre, e da 0 a 9 sono solo dieci. Le lettere da a a f valgono da 10 a 15, quindi ff vale 15 × 16 + 15 = 255. Maiuscole e minuscole hanno lo stesso significato.

Che cos’è il complemento a due?

Il modo abituale in cui i computer memorizzano gli interi negativi: in n bit, un numero negativo −x viene memorizzato come 2ⁿ − x. Con 8 bit, −1 è 11111111 e −128 è 10000000. Così il processore somma e sottrae allo stesso modo numeri con e senza segno.

Perché alcuni convertitori sbagliano con i numeri grandi?

Perché usano i numeri ordinari di JavaScript, esatti solo fino a 9.007.199.254.740.991. Questo strumento usa un’aritmetica di interi di qualsiasi dimensione, quindi conserva ogni cifra.

Cosa significano 0x, 0o e 0b?

Sono prefissi usati da linguaggi di programmazione come JavaScript e Python: 0x per l’esadecimale, 0o per l’ottale e 0b per il binario. In modalità Automatico lo strumento li legge; con una base scelta, accetta anche il prefisso corrispondente.

Quello che scrivo viene inviato da qualche parte?

No. La conversione avviene nel tuo browser.

Strumenti correlati