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.

Decimal ↔ Hex ↔ Binary Converter

Paste a number in any format (e.g., 255, 0xFF, 0b1111, 0o377). Outputs update instantly.

Tip: spaces and underscores are allowed (e.g., 0b1010_1100).
With a width selected, values wrap modulo 2^N (two’s complement).

Decimal

—

Hex

—

Binary

—

Octal

—
Ready. Enter a value above.
Advanced options
Auto-detect: enable ā€œBare 0/1 as binaryā€ if you often paste values like 10101100 without 0b.
Bitwise & endian tools: for predictable results, select a bit width (8/16/32/64).

Bitwise operations

A = main input above. B = operand below.
Accepts the same formats as Input.
Used for shift buttons below.
Logical right shift is unsigned; arithmetic right shift preserves sign (signed mode).

Bitwise result

—
—
—
—

Byte view & endianness

Big-endian (MSB→LSB): —
Little-endian (LSB→MSB): —
Swap endian requires a selected bit width (8/16/32/64) so byte boundaries are unambiguous.

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.

Articoli simili