Convertitore decimale-esadecimale-binario-ottale
Se lavori con networking, Linux, Windows, microcontrollori, SDR o debug a basso livello, ti capita continuamente di incontrare numeri scritti in basi diverse: decimale nei log, esadecimale nei memory dump, binario nelle bitmask e ottale nei permessi Unix classici. Questo convertitore rapido ti permette di incollare un valore in quasi qualsiasi formato comune (inclusi 0x, 0b e 0o) e vedere subito le rappresentazioni equivalenti, i bit/byte raggruppati e, opzionalmente, lāinterpretazione signed (complemento a due). Ć uno strumento pratico per sviluppatori, sysadmin e appassionati di elettronica che vogliono risultati veloci e pronti da copiare quando decodificano registri, flag, campi di pacchetto o quando devono capire valori āstraniā in firmware e output di sistema.
Paste a number in any format (e.g., 255, 0xFF, 0b1111, 0o377). Outputs update instantly.
Decimal
Hex
Binary
Octal
Advanced options
10101100 without 0b.
Bitwise & endian tools: for predictable results, select a bit width (8/16/32/64).
Bitwise operations
Bitwise result
Byte view & endianness
Capire le basi numeriche nel lavoro tecnico reale
Quando costruisci, fai debug o ottimizzi qualcosa di tecnico ā software, firmware, apparati di rete, ricevitori SDR, server Linux o perfino interfacce audio ā prima o poi incontri lo stesso punto critico: i numeri non compaiono sempre nella base āin cui ragioniā naturalmente. I log tendono al decimale, i dump di memoria amano lāesadecimale, le bitmask sono intrinsecamente binarie e i permessi Unix restano spesso in ottale. Un convertitore di basi trasforma questa traduzione mentale continua in unāoperazione da un secondo, ed ĆØ per questo che questi tool vengono usati ogni giorno.
Questa guida spiega cosa rappresentano davvero decimale, esadecimale, binario e ottale, come riconoscerli āsul campoā e come evitare gli errori più comuni ā soprattutto su valori signed, complemento a due, larghezza in bit e endianness.
Decimale vs binario vs esadecimale vs ottale
Decimale
Il decimale (base 10) ĆØ il sistema di tutti i giorni. Le cifre vanno da 0 a 9 e ogni posizione rappresenta una potenza di 10.
Esempio:
255 significa: 2Ć10² + 5Ć10¹ + 5Ć10ā°
Nel lavoro tecnico il decimale ĆØ comune in UI, metriche, valori di timing, limiti di configurazione e numeri āumaniā come ā1000 Mbpsā o ā5 msā.
Binario
Il binario (base 2) usa solo 0 e 1 e ogni posizione rappresenta una potenza di 2.
Esempio:
11111111ā = 1Ć2ā· + 1Ć2ā¶ + ⦠+ 1Ć2ā° = 255
Il binario ĆØ il linguaggio nativo di:
-
flag e bitmask
-
mappe registri e periferiche MCU
-
permessi, feature toggle, status word
-
rappresentazioni DSP/SDR (bit depth, formati campione)
Ć molto esplicito, ma diventa lungo in fretta.
Esadecimale
Lāesadecimale (base 16) usa 0ā9 e AāF (o aāf) per 10ā15. Ogni posizione ĆØ una potenza di 16.
Esempio:
FFāā = 15Ć16¹ + 15Ć16ā° = 240 + 15 = 255
Lāhex ĆØ popolare perchĆ© mappa perfettamente sul binario:
-
1 cifra hex = 4 bit (nibble)
-
2 cifre hex = 1 byte (8 bit)
Ecco perchƩ dump di memoria, indirizzi MAC, hextet IPv6, CRC, hash e valori di registro compaiono spesso in esadecimale.
Ottale
Lāottale (base 8) usa 0ā7. Ć meno comune oggi, ma resta molto rilevante nei sistemi Unix-like.
Uso classico:
-
permessi file come 755, 644, 600
Ogni cifra ottale corrisponde a 3 bit (dato che 8 = 2³), quindi è una rappresentazione naturale per i permessi.
Come riconoscere i formati velocemente
Nei sistemi pratici, i prefissi aiutano:
-
0xFF ā esadecimale
-
0b1010 ā binario
-
0o377 ā ottale (Python e tool moderni)
-
077 ā ottale in convenzioni legacy (notoriamente stile C āvecchioā)
Non tutto ha prefissi. Alcuni dump mostrano hex ānudoā tipo:
DEADBEEF
FFEE12
Per questo può essere utile riconoscere binario ānudoā (10101100 senza 0b), ma ĆØ ambiguo: 10101100 può anche essere decimale. Meglio che sia unāopzione, non il default.
PerchƩ raggruppare bit e byte
Le stringhe binarie lunghe sono difficili da leggere. Il raggruppamento migliora tantissimo la leggibilitĆ :
-
raggruppamento per nibble (4 bit):
10101100 ā 1010 1100 -
raggruppamento per byte in hex (2 cifre):
DEADBEEF ā DE AD BE EF
Ć fondamentale quando fai debug di:
-
header di protocollo (campi allineati a byte/nibble)
-
registri MCU (bit field)
-
strutture āpackedā e formati binari
Un buon convertitore dovrebbe mostrarlo automaticamente, perchƩ riduce gli errori quando scansionI visivamente un valore.
Larghezza in bit: il pezzo mancante nelle conversioni
Uno degli errori più comuni: pensare agli interi come se fossero ālunghi quanto vuoiā. In realtĆ hanno una larghezza fissa: 8, 16, 32, 64 bitā¦
Esempio con 0xFF:
-
unsigned 8 bit: 0xFF = 255
-
signed 8 bit: 0xFF = -1 (complemento a due)
-
unsigned 16 bit: 0x00FF = 255
-
signed 16 bit: ancora 255 (bit di segno = 0)
Scegliere la larghezza corretta ĆØ essenziale per valori provenienti da:
-
registri hardware (spesso 8/16/32 bit)
-
pacchetti di rete (campi a dimensione fissa)
-
letture signed da sensori
-
struct firmware e messaggi āpackedā
Con una larghezza N, il comportamento reale ĆØ āwrap modulo 2^Nā, come fanno gli interi macchina. Ć lo stesso motivo per cui in C gli overflow unsigned āgiranoā (wrap-around).
Signed vs unsigned e complemento a due
Idea di base
Un pattern di bit ĆØ solo un pattern. Signed/unsigned dipende dallāinterpretazione.
-
unsigned: 0 a 2^N ā 1
-
signed (complemento a due): ā2^(Nā1) a 2^(Nā1) ā 1
Il complemento a due ĆØ praticamente ovunque perchĆ© rende lāaritmetica semplice ed efficiente.
Regola mentale rapida
Per un signed su N bit:
-
MSB = 0 ā valore positivo
-
MSB = 1 ā valore negativo
Esempio (8 bit):
-
0b01111111 = 127
-
0b10000000 = -128
-
0b11111111 = -1
Interpretazione a mano
Per leggere un valore N bit come signed:
-
se MSB = 0: uguale a unsigned
-
se MSB = 1: sottrai 2^N al valore unsigned
Esempio:
0xFF (8 bit) = 255 unsigned
signed: 255 ā 256 = ā1
Ecco perchĆ© un toggle āsigned interpretationā nel convertitore ĆØ cosƬ utile.
Esempi pratici reali
Esempio 1: bit flag in un registro di stato
Registro = 0x2D e datasheet:
-
Bit 0: READY
-
Bit 2: ERROR
-
Bit 3: TX_ACTIVE
-
Bit 5: LOW_BAT
0x2D ā binario 0010 1101
Leggi:
-
bit 0 = 1 (READY)
-
bit 2 = 1 (ERROR)
-
bit 3 = 1 (TX_ACTIVE)
-
bit 5 = 1 (LOW_BAT)
Esempio 2: permessi Unix in ottale
755 significa:
-
owner: 7 ā rwx
-
group: 5 ā r-x
-
others: 5 ā r-x
Ogni cifra ottale ĆØ 3 bit:
-
7 ā 111
-
5 ā 101
-
4 ā 100
Per questo 644 ĆØ ātipicoā per i file:
-
6 = 110 ā rw-
-
4 = 100 ā r–
-
4 = 100 ā r–
Esempio 3: numeri negativi dai sensori
Un sensore potrebbe dare un valore signed 16-bit:
0xFF9C
unsigned: 65436 (assurdo come temperatura)
signed: 65436 ā 65536 = ā100
Se lāunitĆ fosse 0,01 °C, allora ā100 significa ā1,00 °C. Un convertitore con vista ā16-bit signedā evita errori.
PerchƩ NOT, shift e AND/OR/XOR sono utili nel convertitore
Le operazioni bitwise sono ovunque:
AND
Per testare o azzerare bit:
-
value & mask
Esempio: leggere gli 8 bit meno significativi: x & 0xFF
OR
Per impostare bit:
-
value | mask
XOR
Per toggle o confronto pattern:
-
value ^ mask
NOT
NOT inverte i bit in una larghezza definita.
Su 8 bit:
-
NOT 0x00 ā 0xFF
-
NOT 0x0F ā 0xF0
Dettaglio importante: NOT ha senso solo se scegli una larghezza (8/16/32/64 bit). Senza, diventa ambiguo.
Shift
Usati per:
-
scalare per potenze di due
-
pack/unpack di campi
-
costruire maschere
Estrazione campo tipica:
-
(value >> 12) & 0xF
Endianness: perchĆ© lāordine dei byte conta
Endianness = ordine dei byte per valori multi-byte.
-
big-endian: byte più significativo per primo
-
little-endian: byte meno significativo per primo
Per 0x12345678:
-
big-endian: 12 34 56 78
-
little-endian: 78 56 34 12
Conta perchƩ:
-
molte CPU usano little-endian (x86)
-
molti protocolli usano big-endian (network byte order)
Un convertitore che mostra le viste byte e permette lo swap di endianness ĆØ utilissimo con capture, dump, file binari e bug di serializzazione.
Errori comuni e come evitarli
-
pensare che āhex = unsignedā: hex ĆØ solo una rappresentazione
-
dimenticare la larghezza con NOT o shift: il comportamento dipende dai bit
-
confondere ASCII, byte e numeri: ASCII ĆØ un encoding, non una regola universale
-
credere che i numeri con zero iniziale siano sempre ottali: vale solo in alcuni contesti legacy
-
assumere che ā101010ā sia per forza binario: può anche essere decimale
Dove la conversione di base serve davvero
Se fai anche solo una di queste cose, la userai spesso:
-
leggere log kernel o eventi Windows con flag in hex
-
decodificare campi pacchetto (Wireshark / raw)
-
lavorare con registri MCU (GPIO, UART, SPI)
-
reverse engineering di firmware o formati binari
-
costruire subnet mask, bitmask, feature flag
-
tuning SDR/DSP (bit depth, formati sample)
-
interpretare byte MIDI o status word audio
-
verificare CRC, hash e checksum
Consigli per sfruttare al massimo il convertitore
-
usa prefissi (0x/0b/0o) per eliminare ambiguitĆ
-
seleziona una larghezza (8/16/32/64) per hardware e protocolli
-
usa il raggruppamento (nibble/byte) per leggere più in fretta e con meno errori
-
prova AND/shift/XOR per validare maschere ed estrazioni
-
se cāĆØ sincronizzazione via URL, condividi un link per un debug riproducibile
Le immagini utilizzate in questo articolo sono generate tramite IA oppure provengono da piattaforme royalty-free come Pixabay o Pexels.
Questo articolo può contenere link di affiliazione. Se effettui un acquisto tramite questi link, potremmo ricevere una commissione senza alcun costo aggiuntivo per te. Questo supporta i nostri test indipendenti e la creazione di contenuti.




