Vai al contenuto principale
riqo.ioStrumenti per grandi idee

Sistemi numerici: binario, ottale, decimale ed esadecimale

Basi posizionali, conversioni, rappresentazioni informatiche e differenza tra valore matematico e interpretazione dei bit.

Il principio della notazione posizionale

In una base b ogni cifra rappresenta un coefficiente moltiplicato per una potenza di b. In decimale 347 significa 3×10² + 4×10¹ + 7; lo stesso principio vale in binario, ottale ed esadecimale.

Cambiare base non cambia il valore matematico, cambia soltanto la sua rappresentazione. Questa distinzione evita di trattare 0xFF, 255 e 11111111₂ come numeri diversi quando indicano lo stesso intero.

Binario, ottale ed esadecimale

Il binario usa due cifre e corrisponde naturalmente agli stati dei bit. L'ottale raggruppa i bit a tre a tre, mentre l'esadecimale usa gruppi di quattro bit e cifre A-F per i valori da dieci a quindici.

L'esadecimale è particolarmente compatto per byte, indirizzi, maschere e dump: un byte corrisponde esattamente a due cifre hex. L'ottale resta comune in alcuni domini Unix, per esempio nelle notazioni dei permessi.

Convertire senza cambiare significato

Da una base a decimale si può sommare il contributo posizionale delle cifre. Da decimale a un'altra base si possono usare divisioni successive o ragionare per potenze, a seconda che il calcolo sia manuale o implementato in software.

Tra binario e esadecimale la conversione è diretta raggruppando quattro bit. Gli zeri iniziali non cambiano il valore di un intero, ma possono essere importanti quando la rappresentazione ha larghezza fissa.

Segno e complemento a due

Il simbolo meno è una rappresentazione matematica del segno; una sequenza di bit a larghezza fissa può invece essere interpretata come unsigned o signed. Nei sistemi moderni gli interi signed usano quasi sempre il complemento a due.

La stessa sequenza 11111111 vale 255 come unsigned a 8 bit e -1 come signed two's complement. Senza conoscere larghezza e interpretazione non esiste una conversione univoca da pattern di bit a intero con segno.

Overflow e larghezza fissa

Un intero a n bit può rappresentare un insieme finito di valori. Le operazioni hardware spesso mantengono solo gli n bit meno significativi, producendo wrap-around per unsigned o comportamento definito dal linguaggio per signed overflow.

Quando si leggono registri, protocolli o file binari bisogna conoscere bit width, signedness ed endianness. La base usata per stampare il numero non risolve nessuno di questi aspetti.

Usi pratici e best practice

Il binario aiuta a ragionare su maschere e flag; l'hex rende leggibili byte e indirizzi; l'ottale è utile in convenzioni specifiche; il decimale resta naturale per quantità orientate alle persone.

Indica prefissi e base in modo non ambiguo, evita di perdere zeri significativi quando rappresentano una larghezza e separa sempre il valore numerico dalla semantica del campo che lo contiene.

Guide correlate

Bit, byte, nibble, fixed-width integer e complemento a due

Come i calcolatori rappresentano bit e interi signed, e perché larghezza e interpretazione cambiano il valore osservato.