Convertitore Base Numerica
Converti numeri tra i sistemi binario (base 2), ottale (base 8), decimale (base 10) ed esadecimale (base 16).
Funzionalita principali
- Binary/Octal/Decimal/Hex
- Live conversion
- Hex letter support
- Copy results
Guide
La conversione di base numerica è il processo di esprimere un valore in un sistema numerico posizionale usando una base diversa. Le quattro basi più comuni nell'informatica e nella matematica sono binario (base 2), ottale (base 8), decimale (base 10) ed esadecimale (base 16). Ogni programmatore, ingegnere elettronico e studente di informatica incontra regolarmente questi sistemi. Questa guida spiega come funziona ciascuna base, i metodi di conversione tra di esse e le situazioni pratiche in cui ciascuna base è la scelta giusta. Il decimale è il sistema che usi ogni giorno. Ha dieci cifre: da 0 a 9. Ogni posizione in un numero decimale rappresenta una potenza di 10. Il numero 5207 significa 5 per 1000, più 2 per 100, più 0 per 10, più 7 per 1. Questo concetto di valore posizionale si applica a ogni base. L'unica cosa che cambia è il numero di cifre disponibili e la potenza che ciascuna posizione rappresenta. Il sistema decimale si è quasi certamente evoluto perché gli esseri umani hanno dieci dita, rendendo dieci un raggruppamento naturale. Il binario usa due cifre: 0 e 1. Ogni posizione rappresenta una potenza di 2. Il numero binario 1101 significa 1 per 8, più 1 per 4, più 0 per 2, più 1 per 1, che fa 13 in decimale. I computer operano in binario perché i circuiti elettronici hanno due stati stabili: acceso e spento, alta tensione e bassa tensione. Ogni dato che il tuo computer processa, dal testo al video alle istruzioni software, è rappresentato in ultima analisi come sequenze di 1 e 0. I numeri binari diventano lunghi in fretta. Il numero decimale 255 è 11111111 in binario, otto cifre per quello che il decimale gestisce in tre. Ecco perché i programmatori raramente scrivono binario grezzo per valori grandi. Usano ottale o esadecimale come notazioni abbreviate che mappano pulitamente al binario perché 8 e 16 sono entrambi potenze di 2. L'ottale usa otto cifre: da 0 a 7. Ogni cifra ottale corrisponde esattamente a tre cifre binarie. Il numero ottale 17 equivale al binario 001 111, che è 15 in decimale. L'ottale era storicamente importante nell'informatica quando i sistemi usavano architetture con dimensioni di parola divisibili per 3 (come macchine a 12, 24 e 36 bit). Oggi, l'ottale appare più comunemente nei permessi dei file Unix/Linux. Il valore di permesso 755 significa che il proprietario può leggere, scrivere ed eseguire (7 = 111 in binario), mentre gruppo e altri possono leggere ed eseguire ma non scrivere (5 = 101 in binario). Il comando chmod su Linux e macOS usa numeri ottali per impostare i permessi dei file, rendendo la conoscenza dell'ottale rilevante per qualsiasi amministratore di sistema o sviluppatore che lavori su sistemi basati su Unix. L'esadecimale usa sedici cifre: da 0 a 9 e da A a F, dove A rappresenta 10, B è 11, C è 12, D è 13, E è 14 ed F è 15. Ogni cifra esadecimale mappa esattamente a quattro cifre binarie. Questo rende l'esadecimale l'abbreviazione preferita per i dati binari nell'informatica moderna. Il valore hex FF equivale al binario 1111 1111, che è 255 in decimale. Un singolo byte (8 bit) è sempre rappresentabile come esattamente due cifre hex, rendendo l'hex ideale per visualizzare contenuti della memoria, valori di colore, indirizzi MAC e hash crittografici. La conversione dal decimale a qualsiasi altra base usa la divisione ripetuta. Per convertire il decimale 200 in binario, dividi 200 per 2 ripetutamente e registra i resti. 200 diviso 2 fa 100 resto 0. 100 diviso 2 fa 50 resto 0. 50 diviso 2 fa 25 resto 0. 25 diviso 2 fa 12 resto 1. 12 diviso 2 fa 6 resto 0. 6 diviso 2 fa 3 resto 0. 3 diviso 2 fa 1 resto 1. 1 diviso 2 fa 0 resto 1. Leggendo i resti dal basso verso l'alto si ottiene 11001000. Lo stesso metodo funziona per qualsiasi base di destinazione. Per convertire 200 in hex, dividi per 16: 200 diviso 16 fa 12 resto 8, 12 diviso 16 fa 0 resto 12 (che è C). Leggendo dal basso verso l'alto si ottiene C8. La conversione da qualsiasi base al decimale usa la formula del valore posizionale. Moltiplica ciascuna cifra per la sua potenza posizionale e somma i risultati. Per hex 2F3: 2 per 256 (16 al quadrato) più 15 per 16 (F è 15) più 3 per 1 fa 512 più 240 più 3, che è 755 in decimale. Questo metodo funziona per qualsiasi base di origine. Per binario 101010: 1 per 32 più 0 per 16 più 1 per 8 più 0 per 4 più 1 per 2 più 0 per 1 fa 42 in decimale. La conversione tra binario e hex è semplice perché ogni cifra hex è esattamente quattro cifre binarie. Raggruppa il numero binario in blocchi di quattro partendo da destra, riempiendo con zeri iniziali se necessario. Binario 10110111 diventa 1011 0111, che è B7 in hex. Andando nell'altra direzione, sostituisci ciascuna cifra hex con il suo equivalente binario a quattro bit. Hex A3 diventa 1010 0011. Questa mappatura diretta è il motivo per cui l'hex è così popolare nei contesti di programmazione. La conversione tra binario e ottale segue lo stesso principio con gruppi di tre. Binario 10110111 diventa 010 110 111 (riempito con uno zero iniziale), che è 267 in ottale. Ottale 52 diventa 101 010 in binario. Il raggruppamento a tre bit rende l'ottale meno conveniente dell'hex per le architetture moderne a byte di 8 bit, motivo per cui l'hex ha ampiamente sostituito l'ottale nella maggior parte dei contesti di programmazione. La conversione tra ottale ed esadecimale non ha scorciatoie dirette. L'approccio standard è convertire attraverso il binario come passaggio intermedio. Converti il numero ottale in binario (ciascuna cifra ottale in tre bit), poi raggruppa di nuovo le cifre binarie in blocchi di quattro bit e converti in hex. Per esempio, ottale 375 diventa binario 011 111 101, raggruppato come 0 1111 1101, che è hex FD. Passare attraverso il binario aggiunge un passaggio, ma il processo è interamente meccanico e rapido con la pratica. I numeri frazionari in basi diverse seguono la stessa logica posizionale ma con potenze negative. In decimale, 0,75 significa 7 per 0,1 più 5 per 0,01. In binario, 0,11 significa 1 per 0,5 più 1 per 0,25, che fa 0,75 in decimale. Non tutte le frazioni decimali si convertono in frazioni binarie finite. Il valore decimale 0,1 in binario è 0,0001100110011... che si ripete all'infinito. Questa è la causa principale dei problemi di precisione in virgola mobile nell'informatica. I linguaggi di programmazione usano prefissi per distinguere le basi numeriche nel codice sorgente. In C, Java, JavaScript, Python e molti altri linguaggi, 0b o 0B indica binario (0b1101), 0o o 0O indica ottale (0o17) e 0x o 0X indica esadecimale (0xFF). I numeri senza prefisso sono decimali. Alcuni vecchi codici C usano uno zero iniziale per l'ottale (017), che è una fonte comune di bug quando qualcuno scrive 010 aspettandosi il decimale 10 ma ottiene l'ottale 8. La strict mode di JavaScript e le versioni moderne affrontano questo richiedendo l'esplicito prefisso 0o per l'ottale. I codici colore nello sviluppo web usano l'esadecimale ampiamente. Il colore CSS #3A7BFF si scompone in 3A per il canale rosso (58 in decimale), 7B per il verde (123) ed FF per il blu (255). Comprendere l'hex ti permette di leggere e adattare i valori di colore direttamente. Vuoi un blu leggermente più scuro? Cambia FF in E0. Vuoi convertire un valore RGB di 128, 64, 32 in hex? Converti ciascuna componente: 128 è 80, 64 è 40, 32 è 20, ottenendo #804020. Il CSS supporta anche colori hex abbreviati in cui ciascun canale è una cifra: #F00 si espande a #FF0000 (rosso puro). Il canale alfa nei colori hex a 8 cifre (#3A7BFFCC) aggiunge trasparenza usando la stessa rappresentazione hex. Gli indirizzi di memoria e il debug usano l'esadecimale come rappresentazione standard. Quando vedi un indirizzo di memoria come 0x7FFF5FBFF8A0, quello è un valore a 48 bit espresso come 12 cifre hex. I debugger, gli editor hex e le utility di memory dump visualizzano tutti i dati in hex perché è compatto, mappa direttamente al binario e si allinea ordinatamente con i confini dei byte. Ogni coppia di cifre hex è un byte, rendendo facile contare i byte e identificare i confini. Un hex dump visualizza 16 byte per riga, con ciascun byte mostrato come due cifre hex, accanto alla rappresentazione del carattere ASCII. Questo formato è il modo standard per ispezionare file binari, pacchetti di rete e dati grezzi del disco. Il networking si affida all'esadecimale per gli indirizzi MAC (48 bit, visualizzati come sei paia come A4:C3:F0:12:34:56) e gli indirizzi IPv6 (128 bit, visualizzati come otto gruppi di quattro cifre hex come 2001:0db8:85a3:0000:0000:8a2e:0370:7334). Comprendere l'hex è essenziale per la configurazione e la risoluzione dei problemi di rete. Le maschere di sottorete, quando espresse in notazione CIDR, mappano direttamente alle rappresentazioni binarie che mostrano quali bit identificano la rete e quali identificano l'host. Gli hash crittografici producono stringhe esadecimali a lunghezza fissa. Un hash MD5 è di 32 cifre hex (128 bit). Un hash SHA-256 è di 64 cifre hex (256 bit). Quando verifichi un download di file confrontando il suo hash con un valore pubblicato, stai leggendo l'esadecimale. Ciascun carattere rappresenta 4 bit dell'output dell'hash. I valori di hash sono visualizzati in hex anziché in decimale perché l'hex è più compatto e mappa direttamente all'output binario dell'algoritmo di hashing. Le operazioni bit a bit nella programmazione lavorano a livello binario ma sono spesso espresse in hex per leggibilità. Una bitmask come 0xFF00 è più chiara del suo equivalente decimale 65280 e più compatta della sua forma binaria 1111111100000000. Le operazioni bit a bit AND, OR, XOR e di shift sono fondamentali per la programmazione a basso livello, lo sviluppo di driver di dispositivo, l'implementazione di protocolli e l'ottimizzazione delle prestazioni. Comprendere la rappresentazione binaria è un prerequisito per usare queste operazioni in modo efficace. Uno shift a sinistra di 1 bit raddoppia un valore. Uno shift a destra di 1 bit lo dimezza (per gli interi senza segno). AND con una maschera estrae bit specifici. OR con una maschera imposta bit specifici. XOR inverte bit specifici. La codifica dei caratteri ASCII e Unicode mappa i caratteri a codici numerici che sono comunemente visualizzati in hex. La lettera A è 0x41 (decimale 65). Uno spazio è 0x20 (decimale 32). La codifica URL usa l'hex: %20 rappresenta uno spazio, %3A rappresenta i due punti. Comprendere questi valori hex aiuta quando si fanno debug di problemi di codifica, si analizzano protocolli binari o si lavora con flussi di dati grezzi. La codifica UTF-8 usa sequenze di byte a lunghezza variabile (da 1 a 4 byte) in cui il pattern binario dei bit iniziali indica il conteggio dei byte, rendendo la comprensione del binario essenziale per comprendere la codifica del testo a livello di byte. Gli interi con segno in binario usano una rappresentazione chiamata complemento a due. In un sistema a complemento a due a 8 bit, i valori vanno da -128 a 127. Il bit più alto è il bit di segno: 0 per positivo, 1 per negativo. Il numero -1 è rappresentato come 11111111 in binario a 8 bit (0xFF in hex). Il numero -128 è 10000000 (0x80). Per negare un numero nel complemento a due, inverti tutti i bit e aggiungi 1. Per esempio, 5 in binario a 8 bit è 00000101. Invertire dà 11111010. Aggiungere 1 dà 11111011, che rappresenta -5. Il complemento a due è lo standard per gli interi con segno in virtualmente tutti i processori moderni. Comprenderlo previene confusione quando si fa debug di aritmetica con segno, si leggono memory dump o si lavora con protocolli binari. Anche i numeri in virgola mobile hanno una rappresentazione binaria definita dallo standard IEEE 754. Un float a 32 bit ha 1 bit di segno, 8 bit di esponente e 23 bit di mantissa. Un double a 64 bit ha 1 bit di segno, 11 bit di esponente e 52 bit di mantissa. Ecco perché l'aritmetica in virgola mobile può produrre risultati sorprendenti. Il valore decimale 0,1 non può essere rappresentato esattamente in virgola mobile binaria, proprio come 1/3 non può essere rappresentato esattamente in decimale. Quando vedi che 0,1 + 0,2 fa 0,30000000000000004 in JavaScript, la causa è le limitazioni della rappresentazione binaria. I valori speciali includono infinito positivo e negativo, zero negativo e NaN (not a number), ciascuno con pattern di bit specifici. La codifica Base64 è un altro sistema numerico usato ampiamente nell'informatica, in particolare per codificare dati binari come testo ASCII stampabile. Base64 usa 64 caratteri (A-Z, a-z, 0-9, +, /) per rappresentare gruppi di 6 bit di dati. Appare negli allegati email (codifica MIME), nei data URI in HTML e CSS, nei token JWT e nelle intestazioni di autenticazione API. Ogni 3 byte di dati binari diventano 4 caratteri Base64, risultando in un aumento di dimensione di circa il 33%. Base64 non è crittografia. È una codifica reversibile usata per la compatibilità di trasporto dei dati. Il Binary-Coded Decimal (BCD) è un sistema ibrido in cui ciascuna cifra decimale è rappresentata dal suo equivalente binario a 4 bit, ma le cifre non sono combinate in un singolo numero binario. Il numero decimale 42 in BCD è 0100 0010, che è diverso dalla rappresentazione binaria pura di 42 (101010). Il BCD è usato nei calcoli finanziari, negli orologi digitali e in altre applicazioni dove la precisione decimale è importante e gli errori di arrotondamento della virgola mobile binaria sono inaccettabili. Alcuni processori includono istruzioni aritmetiche BCD. La conversione di base numerica ha applicazioni nella compressione dei dati, nei codici di rilevamento errori e nell'elettronica digitale. Gli algoritmi di compressione lavorano direttamente con dati binari. I calcoli CRC (Cyclic Redundancy Check) e di checksum operano su rappresentazioni binarie. La progettazione dei circuiti digitali usa porte logiche binarie e tabelle di verità. La capacità di muoversi fluentemente tra decimale, binario, hex e ottale è un'abilità di base in tutti questi campi. Gli errori comuni di conversione includono: contare male i valori posizionali (dimenticando che le posizioni iniziano a potenza 0, non potenza 1), confondere i prefissi ottale e hex nel codice, perdere gli zeri iniziali nei byte hex (scrivere A anziché 0A per un valore di byte) e applicare male le regole del complemento a due. Un altro errore frequente è eseguire l'aritmetica nella base sbagliata, come aggiungere 0x10 e aspettarsi 10 quando il risultato è in realtà 16 in decimale. Il convertitore di basi numeriche WebRecast elimina questi errori gestendo le conversioni all'istante e mostrando il risultato in tutte e quattro le basi simultaneamente. Per la pratica manuale, memorizza i valori hex da 0 a F e i loro equivalenti binari a 4 bit. Una volta che puoi convertire singole cifre hex in binario e viceversa senza pensare, le conversioni più grandi diventano una questione di applicare quella conoscenza cifra per cifra. Hex 0 è 0000, 1 è 0001, 2 è 0010, 3 è 0011, 4 è 0100, 5 è 0101, 6 è 0110, 7 è 0111, 8 è 1000, 9 è 1001, A è 1010, B è 1011, C è 1100, D è 1101, E è 1110 ed F è 1111. Questa tabella di ricerca a sedici voci è la cosa più utile che un programmatore possa memorizzare per lavorare con dati a basso livello. Le potenze di 2 valgono la pena di essere memorizzate fino ad almeno 2^16 (65536). La sequenza è: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536. Questi valori appaiono costantemente nei contesti di programmazione. 1024 byte è un kilobyte (tecnicamente un kibibyte). 65535 (2^16 meno 1) è il valore massimo per un intero senza segno a 16 bit. 2147483647 (2^31 meno 1) è il massimo intero con segno a 32 bit. Riconoscere immediatamente questi numeri ti dice la struttura binaria che sta dietro di essi. Le dimensioni dei dati nell'informatica usano potenze di 2 e sono espresse in byte. Un byte è 8 bit. Un kilobyte è 1.024 byte (2^10). Un megabyte è 1.048.576 byte (2^20). Un gigabyte è 1.073.741.824 byte (2^30). I produttori di storage spesso usano potenze di 10 invece (1 GB = 1.000.000.000 byte), motivo per cui un disco da 1 TB mostra circa 931 GiB nel tuo sistema operativo. I prefissi IEC (kibi, mebi, gibi) sono stati introdotti per risolvere questa ambiguità, ma l'industria usa ancora entrambe le convenzioni. Comprendere la base binaria delle dimensioni dei dati spiega perché questi numeri appaiono ovunque nell'informatica. I codici di rilevamento e correzione degli errori usano ampiamente l'aritmetica binaria. I bit di parità aggiungono un singolo bit a una parola di dati per rendere il numero totale di bit a 1 pari (parità pari) o dispari (parità dispari). I codici di Hamming usano bit di parità multipli in posizioni che sono potenze di 2 (1, 2, 4, 8, 16) per rilevare e correggere errori a singolo bit. I codici CRC usano la divisione polinomiale in binario (aritmetica GF(2), dove l'addizione è XOR) per generare checksum. Queste tecniche sono fondamentali per l'archiviazione e la trasmissione affidabile dei dati. L'algebra booleana, la matematica alla base della logica digitale, opera in binario. Le porte AND, OR, NOT, XOR, NAND e NOR prendono input binari e producono output binari. Le tabelle di verità enumerano tutte le possibili combinazioni di input e i loro output. Le mappe di Karnaugh e la semplificazione booleana riducono espressioni complesse a implementazioni minime di porte. Ogni circuito digitale, da una semplice calcolatrice a una CPU moderna, è costruito da queste porte logiche binarie. Comprendere il binario è il punto di ingresso per comprendere come funziona l'hardware al livello più basso. I set di istruzioni e il codice macchina sono sequenze binarie che la CPU esegue direttamente. Un'istruzione x86 come MOV EAX, 5 è codificata come byte binari. Il linguaggio assembly fornisce mnemonici leggibili dall'uomo per queste istruzioni binarie. Quando compili codice in C, Java o qualsiasi altro linguaggio, il compilatore in ultima analisi produce istruzioni macchina binarie. Visualizzare il codice compilato in un editor hex rivela il binario grezzo (visualizzato come byte hex) che il processore esegue. Il calcolo quantistico introduce un paradigma diverso con qubit che possono esistere in sovrapposizioni di 0 e 1. Il calcolo binario classico usa bit definiti. Il calcolo quantistico usa ampiezze di probabilità. Tuttavia, l'output di un calcolo quantistico è misurato come bit binari classici. L'interfaccia tra calcolo quantistico e classico usa ancora le basi numeriche tradizionali, e gli algoritmi quantistici sono progettati e analizzati usando la matematica binaria convenzionale. Il convertitore di basi numeriche WebRecast accetta input in una qualsiasi delle quattro basi e restituisce il valore equivalente in tutte le altre. Digita un numero decimale e vedi le sue rappresentazioni binaria, ottale ed hex. Incolla un codice colore hex e vedi la sua forma binaria. Inserisci una stringa binaria da un datasheet e ottieni il valore decimale. Le conversioni avvengono in tempo reale mentre digiti, rendendo veloce esplorare come i valori si relazionano tra le basi. Usalo accanto al tuo editor di codice, debugger o strumenti di analisi dati ogni volta che hai bisogno di muoverti tra sistemi numerici in modo rapido e accurato.
Domande frequenti
What bases are supported?
Binary (2), Octal (8), Decimal (10), and Hexadecimal (16).
