Cos’è un Bit?

Un bit (abbreviazione di “binary digit”) è la più piccola unità di informazione utilizzata in informatica. Un bit può assumere solo due possibili valori: 0 o 1. Questi due stati rappresentano i livelli base di un sistema binario, che è il linguaggio che i computer utilizzano per elaborare e memorizzare dati.

Cos’è un Byte?

Un byte è una sequenza di 8 bit. È l’unità base con cui i computer memorizzano e gestiscono i dati. Poiché ogni bit può avere due valori, un byte può rappresentare 2⁸ (256) diverse combinazioni di 0 e 1. Questo permette di codificare numeri da 0 a 255 o caratteri, come quelli di una tastiera.

Ad esempio:

  • La lettera “A” in ASCII è rappresentata dal byte: 01000001.

Differenza tra Bit e Byte

La differenza fondamentale tra bit e byte è che un bit rappresenta la più piccola unità di informazione (0 o 1), mentre un byte è un gruppo di 8 bit e può rappresentare una quantità maggiore di dati. Di conseguenza, molte unità di misura dell’informazione vengono espresse in multipli di byte piuttosto che in bit.

Unità di Misura dell’Informazione

Oltre a bit e byte, esistono diverse unità di misura dell’informazione, utilizzate per esprimere la quantità di dati o la velocità di trasmissione. Queste unità sono basate su multipli di bit o byte e seguono spesso una scala logaritmica.

Multipli del Byte

Le dimensioni dei file e la capacità di archiviazione vengono solitamente misurate in multipli di byte:

UnitàSimboloNumero di ByteEquivalente
ByteB1 Byte8 bit
KilobyteKB1.024 Byte ($2^{10}$)8192 bit
MegabyteMB1.024 KB = 1.048.576 Byte ($2^{20}$)8.388.608 bit
GigabyteGB1.024 MB = 1.073.741.824 Byte ($2^{30}$)8.589.934.592 bit
TerabyteTB1.024 GB = 1.099.511.627.776 Byte8.796.093.022.208 bit
PetabytePB1.024 TB

È importante notare che l’uso di multipli binari (1024) per il calcolo delle dimensioni è comune in informatica. Tuttavia, esiste anche il sistema decimale, che utilizza multipli di 1000 per rappresentare le stesse unità. Questo può creare confusione, soprattutto quando si parla di capacità di archiviazione su hard disk o dispositivi di memoria, poiché alcuni produttori usano il sistema decimale (1KB = 1000 Byte).

Unità di Misura della Velocità

La velocità di trasmissione dei dati (come la velocità di Internet o di trasferimento file) viene solitamente misurata in bit per secondo (bps) e suoi multipli. Queste unità indicano quanti bit possono essere trasmessi in un secondo.

UnitàSimboloEquivalente
Bit per secondobps1 bit/secondo
Kilobit per secondoKbps1.000 bps
Megabit per secondoMbps1.000.000 bps
Gigabit per secondoGbps1.000.000.000 bps

È importante ricordare che le velocità di trasmissione vengono generalmente misurate in bit, mentre la capacità di archiviazione in byte. Per esempio, se la tua connessione Internet ha una velocità di 100 Mbps, significa che può trasmettere 100 milioni di bit al secondo, non byte.

Differenza tra Mebibyte e Megabyte

Esistono anche delle unità meno conosciute, come il Mebibyte (MiB) e il Gibibyte (GiB), che utilizzano rigorosamente i multipli binari. Ad esempio:

  • 1 Mebibyte (MiB) = 1.024 Kibibyte (KiB) = 1.048.576 Byte
  • 1 Gibibyte (GiB) = 1.024 MiB = 1.073.741.824 Byte

Queste unità sono usate per evitare ambiguità nel conteggio dei dati, ma spesso non vengono adottate nella terminologia comune.

Rappresentazione fisica dei bit a livello hardware

I bit, pur essendo concetti logici, hanno una corrispondenza fisica nei circuiti elettronici. Esistono diversi meccanismi a livello hardware per codificare i bit:

1. Transistor e Logica Digitale

  • Il componente principale che gestisce i bit a livello hardware è il transistor. I transistor possono comportarsi come interruttori che regolano il passaggio di corrente.
  • Un bit 1 è solitamente rappresentato da un livello alto di tensione (ad esempio, 5V o 3.3V), mentre un bit 0 corrisponde a un livello basso (0V). Questi stati sono elaborati all’interno dei circuiti logici.

2. Memorie e Archiviazione

  • Nelle memorie RAM, il bit viene memorizzato attraverso lo stato di carica di un condensatore. Un condensatore carico può rappresentare un bit 1, mentre uno scarico rappresenta un bit 0.
  • Negli hard disk tradizionali, i bit sono rappresentati tramite l’orientamento magnetico di minuscole aree del disco. Nei moderni SSD, i bit sono immagazzinati utilizzando stati di tensione all’interno delle celle di memoria flash.

La Codifica ASCII

La codifica ASCII (American Standard Code for Information Interchange) è uno dei primi standard utilizzati per rappresentare i caratteri in formato digitale. Creato nel 1963, è stato ideato per permettere la comunicazione tra dispositivi diversi utilizzando una codifica unificata per i caratteri.

Cosa Rappresenta l’ASCII?

L’ASCII è una codifica a 7 bit, che permette di rappresentare fino a 128 caratteri diversi (da 0 a 127 in decimale). Ogni carattere è associato a un valore numerico che rappresenta il suo codice in ASCII. Questi caratteri includono:

  • Caratteri di controllo (dal codice 0 al 31 e il 127): Non sono simboli stampabili, ma istruzioni per la gestione dei dispositivi, come null, backspace, tab, newline (invio) e altre funzioni simili.
  • Caratteri stampabili (dal codice 32 al 126): Sono i caratteri leggibili, come lettere, numeri, segni di punteggiatura e simboli speciali.

Di seguito la tabella con i caratteri ASCII:

Tabella ASCII

ASCII Esteso

In origine, la codifica ASCII era limitata a 7 bit (128 valori), sufficienti per rappresentare i caratteri dell’alfabeto inglese, numeri, segni di punteggiatura e comandi di controllo di base. Tuttavia, con il tempo, è emersa l’esigenza di codificare ulteriori simboli, specialmente per lingue con caratteri speciali come accenti e simboli grafici.

Così è nato l’ASCII esteso, che utilizza un byte completo (8 bit), espandendo il numero di caratteri rappresentabili a 256 (da 0 a 255). I caratteri dall’128 al 255 includono simboli aggiuntivi, come lettere accentate, simboli matematici, e caratteri grafici per la creazione di bordi o tabelle nei vecchi terminali.

Alcuni esempi di caratteri ASCII estesi:

DecimaleSimboloDescrizione
128ÇLettera C con cediglia (utilizzata in francese)
130éLettera e con accento acuto
160áLettera a con accento acuto
178²Esponente 2 (quadrato)
255ÿLettera y con dieresi

ASCII vs Unicode

Un limite dell’ASCII, anche nella sua versione estesa, è che può rappresentare solo 256 caratteri, il che è insufficiente per supportare tutte le lingue del mondo e i simboli necessari in vari contesti. Per esempio, l’alfabeto cinese, il giapponese, l’arabo e altri sistemi di scrittura hanno molti più caratteri rispetto a quelli supportati dall’ASCII esteso.

Per risolvere questa limitazione, è stato sviluppato lo standard Unicode, che consente di codificare oltre un milione di caratteri. Unicode è retrocompatibile con l’ASCII, quindi i primi 128 caratteri dell’Unicode coincidono con quelli dell’ASCII originale, ma permette anche di rappresentare simboli e caratteri di praticamente ogni lingua del mondo.

Esercizi

  1. Convertire in bit:
  • 1 B
  • 2 B
  • 1 KB
  • 128 KB
  • 2 MB
  1. Convertire in codifica ASCII esteso le seguenti stringhe:
  • a
  • b
  • ab
  • casa
  • Hello!
  • 1234567890ABCDEF