Sistemi Numerici Informatici: Binario, Ottale, Esadecimale e Virgola Mobile Spiegati
I computer elaborano informazioni usando sistemi numerici fondamentalmente diversi dalla notazione decimale umana. Comprendere questi sistemi è essenziale per programmazione, progettazione hardware e logica digitale.
Sistemi Numerici Posizionali
Tutti i sistemi usano la notazione posizionale: il valore di ogni cifra = cifra × base^posizione (la più a destra = posizione 0).
Decimale (Base-10)
Cifre: 0-9. Standard umano.
352₁₀ = 3×10² + 5×10¹ + 2×10⁰ = 300 + 50 + 2
Binario (Base-2)
Cifre: 0, 1. Fondamento di tutta la logica digitale.
1101₂ = 1×2³ + 1×2² + 0×2¹ + 1×2⁰ = 8 + 4 + 0 + 1 = 13₁₀
I bit (cifre binarie) si raggruppano in: nibble (4), byte (8), word (16/32/64).
Ottale (Base-8)
Cifre: 0-7. Storico: PDP-8, prime permessi Unix. Ogni cifra ottale = 3 bit.
732₈ = 7×8² + 3×8¹ + 2×8⁰ = 448 + 24 + 2 = 474₁₀
Esadecimale (Base-16)
Cifre: 0-9, A-F (A=10, B=11, C=12, D=13, E=14, F=15). Ogni cifra esadecimale = 4 bit. Standard per indirizzi di memoria, codici colore, codice macchina.
204F₁₆ = 2×16³ + 0×16² + 4×16¹ + 15×16⁰ = 8192 + 0 + 64 + 15 = 8271₁₀
Conversioni
| Da | A | Metodo |
|---|---|---|
| Binario | Ottale | Raggruppa 3 bit da destra |
| Binario | Esadecimale | Raggruppa 4 bit da destra |
| Ottale/Esadecimale | Binario | Espandi ogni cifra |
| Qualsiasi | Decimale | Espansione posizionale |
| Decimale | Qualsiasi | Divisione ripetuta (intero), moltiplicazione (frazione) |
Virgola Mobile (Numeri Reali)
Standard IEEE 754: segno × mantissa × base^esponente
Precisione Singola (32-bit)
- 1 bit segno
- 8 bit esponente (bias 127)
- 23 bit mantissa (1 iniziale implicito)
- Intervallo: ~±10^±38, ~7 cifre decimali di precisione
Precisione Doppia (64-bit)
- 1 segno, 11 esponente (bias 1023), 52 mantissa
- Intervallo: ~±10^±308, ~15 cifre decimali
Esempio: 13.75 in IEEE 754 Singola
13.75₁₀ = 1101.11₂ = 1.10111₂ × 2³ Segno: 0 (positivo) Esponente: 3 + 127 = 130 = 10000010₂ Mantissa: 10111000000000000000000 (1 iniziale implicito) Binario: 0 10000010 10111000000000000000000 Esadecimale: 0x415E0000
Valori Speciali
- Zero: tutti i bit 0 (±0)
- Infinito: esponente tutti 1, mantissa 0 (±∞)
- NaN: esponente tutti 1, mantissa ≠ 0
- Denormalizzato: esponente 0, mantissa ≠ 0 (sottodisturbo graduale)
Perché È Importante
I sistemi numerici stanno alla base di: indirizzamento memoria, operazioni bitwise, rappresentazione colore, protocolli di rete, formati file, crittografia e computazione GPU. La padronanza consente debug efficiente, ottimizzazione e programmazione di basso livello.