Skip to main content
Binario
101010

Guida al sistema binario

Binary Number System

The binary system uses only two digits: 0 and 1. This is the basic language of computers, where 0 means no electricity (off) and 1 means electricity (on). Binary numbers are longer than decimal, but easier to implement in digital electronics. A byte is 8 bits (e.g., 10101010₂ = 170₁₀).

Conversione in binario

Per convertire da decimale a binario, dividi per 2 e annota i resti. Esempio: 42 ÷ 2 = 21 resto 0, 21 ÷ 2 = 10 resto 1, 10 ÷ 2 = 5 resto 0, 5 ÷ 2 = 2 resto 1, 2 ÷ 2 = 1 resto 0, 1 ÷ 2 = 0 resto 1. Leggendo dal basso: 101010₂ = 42₁₀.

Applicazioni nella programmazione

Il binario si usa nelle maschere di bit, nei permessi dei file (es. chmod 755 = 111101101), negli indirizzi IPv4 e nei colori RGB (rosso #FF0000 = 11111111 00000000 00000000). La RAM è indirizzata a bit. Booleano: vero=1, falso=0.

IPv6 non è quattro volte più grande di IPv4. È 2⁹⁶ volte più grande

I conteggi di bit sono esponenti, e gli esponenti sconfiggono l'intuizione. Un indirizzo IPv6 ha quattro volte i bit di uno IPv4, il che suona come capacità quadrupla. In realtà è circa 79 quadriliardi di volte maggiore, perché ogni singolo bit in più raddoppia l'intervallo.

Come funziona

  • Converte tra binario, decimale, esadecimale e ottale.
  • Mostra quanti valori distinti può rappresentare un dato numero di bit.
  • Rende esplicito il raddoppio, la parte che più resiste alla stima a intuito.
valori = 2^bit

 8 bit →                256      un byte, 0–255
16 bit →             65.536      un numero di porta
32 bit →      4.294.967.296      un indirizzo IPv4
64 bit → 1,8 × 10¹⁹              timestamp in nanosecondi

un bit in più raddoppia sempre l'intervallo

Esempio pratico

Confrontare spazi di indirizzamento e vedere da dove nascono i limiti noti.

  1. IPv4 è a 32 bit: 2³² = 4,29 miliardi di indirizzi
  2. IPv6 è a 128 bit: 2¹²⁸ ≈ 3,4 × 10³⁸
  3. il rapporto è 2¹²⁸ ÷ 2³² = 2⁹⁶
  4. 2⁹⁶ ≈ 7,9 × 10²⁸, non 4

Quattro volte i bit significano 2⁹⁶ volte gli indirizzi. La stessa aritmetica spiega perché 255 compaia ovunque: otto bit danno 256 valori, numerati da 0 a 255.

Come leggere il risultato

  • L'esadecimale esiste perché è binario compatto. Una cifra esadecimale vale esattamente quattro bit, quindi due cifre fanno un byte: da qui i colori scritti come #RRGGBB e il fatto che 0xFF valga 255, ovvero 11111111.
  • L'ottale vale tre bit per cifra, ed è per questo che i permessi dei file Unix vanno a gruppi di tre: 755 sono tre gruppi di flag di lettura, scrittura ed esecuzione compressi in una cifra ciascuno.
  • L'esaurimento di IPv4 era prevedibile dal solo esponente. 32 bit limitano internet a 4,29 miliardi di indirizzi comunque li si assegni, e quel tetto era visibile decenni prima di essere raggiunto.
  • Gli interi con segno spendono un bit per il segno, dimezzando l'intervallo positivo. Un valore con segno a 32 bit arriva a 2.147.483.647 invece che a 4.294.967.295: origine di moltissimi bug di overflow.

Domande frequenti

Perché un byte va da 0 a 255 e non da 1 a 256?
Perché si conta partendo da zero. Otto bit danno 2⁸ = 256 configurazioni distinte; la prima rappresenta lo zero, quindi l'ultima rappresenta 255. Il conteggio è 256, il massimo è 255.
Perché usare l'esadecimale invece del binario diretto?
Densità senza perdita. Ogni cifra esadecimale corrisponde esattamente a quattro bit, quindi un byte è sempre due caratteri e la conversione è meccanica. Scrivere 11111111 invece di FF è quattro volte più lungo e assai più facile da contare male.