arrow_backTorna alle field notes
COMPUTER SCIENCE Pubblicato 5 Aug 2026

Binary, Hex, e unità dati spiegate

Un glossario pratico dei sistemi numerici binario, esadecimale e delle convenzioni di unità dati usate nella programmazione, networking e analisi forense.

Ogni byte che ispezioni in un editor hex, ogni subnet mask che calcoli, ogni dimensione di file che uno strumento riporta dipende da un piccolo insieme di sistemi numerici e convenzioni di unità. Se sbagli questi, sottovaluterai una dimensione buffer, leggerai male un memory dump, o discuterai con un collega se 1 KB è 1000 o 1024 byte.

Binary: la base che ogni computer parla veramente

Binary è base 2 — solo 0 e 1. Un singolo digit binario è un bit. Raggruppa 8 bit insieme e ottieni un byte, che può rappresentare 256 valori distinti (da 0 a 255 unsigned, o da -128 a 127 signed two's complement).

Quando vedi 01001000 sono 72 in decimale, che capita essere il codice ASCII per 'H'. Convertire a mano è solo sommare le potenze di 2 dal bit più a destra: 2^6 + 2^3 = 64 + 8 = 72. Strumenti come python3 -c "print(bin(72))" o xxd su un file lo faranno istantaneamente, ma capire la matematica importa quando stai decodificando una bitmask o calcolando i valori flag in un header TCP.

Hexadecimal: la forma abbreviata del binary

Hex è base 16, usando 0-9 e A-F. Esiste perché il binary è illeggibile su larga scala e il decimale non mappa pulitamente sui confini dei byte. Un digit hex rappresenta esattamente 4 bit, quindi due digit hex rappresentano un byte completo — 0x00 a 0xFF copre tutti i 256 valori byte senza spazio sprecato.

Per questo i hex dump sono lo standard in strumenti come xxd, hexdump -C, o la vista memoria di un disassembler. Quando vedi 0x4D 0x5A all'inizio di un file, è l'header MZ che identifica un eseguibile Windows PE. Indirizzi memoria, color code (#FF5733), indirizzi MAC e indirizzi IPv6 sono tutti convenzionalmente scritti in hex perché mappa così pulitamente sulla struttura sottostante di byte e nibble.

Convertire hex a decimale: 0x4D = (4 × 16) + 13 = 77. In Python, int('4D', 16) ti ci porta senza calcoli a mano, e hex(77) va nell'altro modo.

Dove binary, decimale e hex si incontrano veramente in pratica

Gli indirizzi IP sono un buon esempio di tutti e tre che collidono. Un indirizzo IPv4 come 192.168.1.1 sono davvero quattro byte: 11000000.10101000.00000001.00000001 in binary, o C0.A8.01.01 in hex. La matematica del subnetting — capire se due indirizzi sono sulla stessa rete — è fondamentalmente operazioni AND binarie contro una subnet mask, anche se scriviamo tutto in decimale puntato per comodità.

Nell'analisi forense digitale e nell'analisi malware, stai costantemente traducendo tra queste rappresentazioni. Un disassembler mostra opcodes in hex, ma la CPU esegue binary grezzo, e i valori registri spesso vengono interpretati come offset decimali o stringhe ASCII a seconda del contesto. Sapere che 0x41 è sia il numero 65 che il carattere ASCII 'A' è il tipo di pattern recognition che accelera considerevolmente l'analisi manuale.

Unità dati: il problema 1000 vs 1024

È qui che la gente davvero si brucia. I produttori di storage, i filesystem e i sistemi operativi non sempre concordano su cosa sia

Scritto con assistenza AI, revisionato e pubblicato da Michal Pilch (CISSP), Korra Studio.

Pronto per andare oltre?

Questa è una nota dalla knowledge base di Korra Studio — la piattaforma abbina ogni argomento a mentoring 1-to-1.

Inizia gratisarrow_forward