Come funzionano bit e byte nella memoria del computer

7

Se hai posseduto un computer per più tempo di una pausa caffè, hai visto i termini bit e byte gettati in giro. Sono le unità standard per misurare la RAM, la capacità del disco rigido e le dimensioni dei file in qualsiasi visualizzatore di file moderno.

Potresti sentire qualcuno che afferma che una macchina ha un processore Pentium a 32 bit con 64 megabyte di RAM e 2,1 gigabyte di spazio su disco rigido. Queste specifiche vengono costantemente visualizzate nelle guide tecniche e nei tutorial. Capire cosa significano effettivamente questi termini ti aiuta a smettere di indovinare e iniziare a sapere.

Numeri decimali

Per capirne un po’, confrontalo con qualcosa di familiare: cifre.

Una cifra è un singolo slot per un valore compreso tra 0 e 9. Li combiniamo per creare numeri più grandi. Prendi 6.357. Ha quattro cifre. Il 7 si trova nel “posto 1”. Il 5 è nella posizione delle decine. Il 3 è nella posizione delle centinaia. Il 6 occupa la posizione delle migliaia.

Puoi scriverlo esplicitamente:

(6 * 1000) + (3 * 100) + (5 * 10) + (7 * 1) = 6000 + 300 + 50 + 7 = 6357

Oppure usa le potenze di 10. Usando il simbolo dell’accento circonflesso (^) per “al potere di”, appare così:

(6 * 10^3) + (3 * 10^2) + (5 * 10^1) + (10^0) = 6000 + 300 + 50 + 7 = 6357

Ogni cifra è un segnaposto per la successiva potenza superiore di 10. La prima cifra inizia da 10^0.

Ciò sembra normale perché utilizziamo quotidianamente un sistema base 10. Probabilmente esiste perché gli esseri umani hanno dieci dita. Se ci evolvessimo con otto dita, probabilmente utilizzeremmo un sistema in base 8. Puoi usare qualsiasi base tu voglia. Basi diverse hanno senso in contesti diversi.

I computer utilizzano il sistema numerico in base 2. È noto anche come sistema di numeri binari.

Il sistema Base-2 e il byte a 8 bit

I computer utilizzano la base 2 perché è economica. Potresti costruire un computer base 10. Sarebbe semplicemente dannatamente costoso. L’hardware Base-2 è relativamente conveniente.

Quindi i computer usano numeri binari. Usano cifre binarie invece di cifre decimali. La parola bit abbrevia “Binary digIT”.

Le cifre decimali hanno 10 valori: da 0 a 9. I bit hanno solo due valori: 0 e 1. Un numero binario è semplicemente una stringa di 0 e 1, come 1011.

Per trovare il valore, utilizzare i poteri in base 2 anziché in base 10.

(1 * 2^3) + (0 * 2^2) + (1 * 2^1) + (1 * 2^0) = 8 + 0 + 2 + 1 = 11

Ogni bit rappresenta potenze crescenti di 2. Il conteggio in binario è semplice. Ecco come si confrontano i numeri decimale e binario da 0 a 20:

0 = 0
1 = 1
2 = 10
3 = 11
4 = 100
5 = 101
6 = 110
7 = 111
8 = 1000
9 = 1001
10 = 1010
11 = 1011
12 = 1100
13 = 1101
14 = 1110
15 = 1111
16 = 10000
17 = 10001
18 = 10010
19 = 10011
*20 = 10100

Notare il riporto. Al numero 2, il binario porta per la prima volta. Se un bit è 1 e aggiungi 1, diventa 0 e il bit successivo diventa 1. Passando da 15 a 16 si passa a quattro bit, trasformando 1111 in 10000.

I bit raramente viaggiano da soli. Sono raggruppati in raccolte a 8 bit. Questi bundle sono chiamati byte.

Perché otto bit in un byte? È come chiedere perché ci sono 12 uova in una dozzina. Negli ultimi 50 anni le persone si sono stabilite su 8 bit attraverso tentativi ed errori.

Con 8 bit si possono rappresentare 256 valori. Vanno da 0 a 255.

  • 0 = 00000000
    1 = 00000001
    2 = 00000010

    254 = 11111110
    *255 = 11111111

In Come funzionano i CD, imparerai che un CD utilizza 2 byte per campione. Sono 16 bit. Ciascun campione può variare da 0 a 65.535.

  • 0 = 0000000000000000
  • 1 = 0000000000000001
    2 = 0000000000000010

    65534 = 1111111111111110
    65535 = 1111111111111111

Successivamente, esamineremo un modo in cui vengono utilizzati i byte.

Come la codifica ASCII e la matematica binaria alimentano i tuoi dati

Il testo non è magico. Sono solo numeri che indossano un costume.

Quando digiti una frase, il tuo computer non vede le lettere. Vede valori binari. Nello specifico, si basa sul set di caratteri ASCII standard per trasformare le sequenze di tasti in dati. In questo sistema, ogni valore binario da 0 a 127 corrisponde a un carattere specifico. La maggior parte dei sistemi estende questo valore a 256 valori utilizzando un byte intero, aggiungendo lettere accentate e simboli per le lingue internazionali.

Ma i codici fondamentali 128 costituiscono la base.

Considera il Blocco note di Windows 95/98. Se si digita “Quattro venti e sette anni fa”, il software alloca esattamente un byte di memoria per carattere. Ciò include gli spazi tra le parole. Lo spazio è il codice ASCII 32. Il punto è 46. “A” è 65.

Provalo tu stesso.

Crea un file denominato “getty.txt”. Scrivi quella frase. Salvalo. Apri il tuo esplora file. La dimensione è 30 byte. Perché? Perché ci sono 30 caratteri. Aggiungi una parola. Il file cresce in base al numero di lettere in quella parola. È un rapporto diretto 1:1.

Apri il file come dati grezzi e le lettere svaniscono. Vedi i numeri.

Queste sono rappresentazioni decimali dei codici ASCII. Per essere tecnicamente precisi, la macchina vede solo binari. 32 diventa “00100000”. Ma la logica vale: ogni byte contiene un carattere.

I primi 32 valori (da 0 a 31) non sono lettere. Sono codici di controllo. Ritorni in carrozza. Avanzamenti di riga. Suona la campana. I caratteri stampabili effettivi iniziano da 32. La punteggiatura viene dopo. Quindi cifre. Poi maiuscolo. Quindi minuscolo. Puoi visualizzare il grafico completo su Unicode.org, ma il principio è semplice. L’archiviazione del testo è solo un elenco di questi numeri interi.

Comprensione dei prefissi byte e della matematica binaria

Una volta compreso che i dati sono solo byte, ti imbatti in un nuovo problema: la scala.

Un byte è piccolo. La maggior parte dei file sono enormi. Quindi abbiamo bisogno dei prefissi.

Usiamo i prefissi byte per denotare la grandezza. Chilo, mega, giga. Questi non sono solo termini di marketing. Sono moltiplicatori binari.

  • Chilo (K): $2^{10}$ = 1.024 byte
  • Mega (M): $2^{20}$ = 1.048.576 byte
  • Giga (G): $2^{30}$ = 1.073.741.824 byte
  • Tera (T): $2^{40}$ = ~1,1 trilioni di byte
  • Peta (P): $2^{50}$ = ~1,1 quadrilioni di byte
  • Exa (E): $2^{60}$ = ~1,1 quintilioni di byte
  • Zetta (Z): $2^{70}$
  • Yotta (Y): $ 2^{80}$

Un chilo equivale a circa mille. Mega è un milione. I Giga sono un miliardo.

Quando qualcuno afferma che il proprio disco rigido è “2 gigabyte”, intende $ 2 \times 2^{30}$ byte. Esattamente 2.147.483.648 byte.

Sembra astratto finché non visualizzi i dati. Un CD standard contiene circa 650 megabyte. Tre CD riempiono un’unità da 2 GB. Un database di terabyte è comune. È probabile che i database di petabyte esistano nelle principali strutture governative. La scala cresce in modo esponenziale.

Questo ci porta alla matematica binaria.

Funziona come la matematica decimale, con un vincolo rigoroso. Ogni bit può essere solo 0 o 1.

In decimale contiamo da 0 a 9. Quando raggiungiamo 9 e aggiungiamo 1, portiamo l’1 alla colonna successiva. Il binario funziona in modo identico, ma il riporto avviene più velocemente.

Prendi l’addizione decimale:

Inizia bene. $2+1=3$. Colonna successiva: $5+5=10$. Scrivi 0, riporto 1. Successivamente: $4+7+1(carry)=12$. Scrivi 2, riporta 1. Finale: $0+0+1=1$. Risultato: 1203.

Ora, binario.

Bit più a destra: $0+1=1$. Nessun trasporto.
Secondo bit: $1+1=10$. Scrivi 0, riporta 1.
Terzo bit: $0+1+1(riporta)=10$. Scrivi 0, riporta 1.
Quarto bit: $0+0+1(riporta)=1$.

Il risultato è “1001”. In decimale, è 9. I calcoli sono identici. La rappresentazione è solo in base 2 invece che in base 10.

Il risultato finale

I bit sono cifre binarie. Sono 0 o 1.
I byte sono gruppi di 8 bit.
Il testo è solo una sequenza di byte mappati su codici ASCII.
La dimensione di archiviazione è misurata in potenze binarie di 1.024.

Non è complicato. È semplicemente fondamentale.

Per approfondimenti sulla logica booleana e sulle implementazioni delle porte, scopri come funziona l’addizione booleana. Il resto si conta solo in binario.