Perché i computer usano il sistema binario?

Non sai come fa un computer a funzionare con l’aiuto dell’elettricità? Eccoti allora spiegato perché i computer usano il sistema binario.

Indice

Perché i computer usano il sistema binario?

Tutti i computer rappresentano le informazioni provenienti dal mondo esterno utilizzando solamente due valori: zero e uno. Questo avviene poiché i circuiti elettrici con cui è composto un qualsiasi computer possono comprendere solo due stati di tensione, ovvero:

  • 0, che corrisponde all’assenza di tensione, quindi a 0 volt;
  • 1, che corrisponde invece alla presenza di tensione, in genere 5 volt.

Perché i computer usano il sistema binario

Ecco una simulazione di come le informazioni provenienti dal mondo esterno viaggiano dall’interno (input) all’esterno (output) del computer sotto forma di 0 e 1.

Dunque, un singolo filo su cui scorre della corrente elettrica può trovarsi solo in due stati: con o senza elettricità. Ma in che modo un computer è capace di memorizzare o di visualizzare delle informazioni con l’aiuto dell’elettricità? Come appena detto con un filo di corrente è possibile rappresentare solo due scelte: sì o no, vero o falso, acceso o spento, o qualsiasi altra dicotomia. Questo stato di acceso o spento in cui può trovarsi un filo di corrente prende il nome di bit (dall’acronimo inglese di binary digit, pronunciato bàinari dìgit, in italiano cifra binaria) e rappresenta la più piccola quantità di informazione che può essere memorizzata su un qualsiasi computer.
Appare perciò evidente che se si usano più fili di corrente si avranno a disposizione più bit. Di conseguenza, con più combinazioni di 0 e 1 sarà possibile rappresentare delle informazioni ancora più complesse:

  • 1 filo di corrente = 1 bit = 2 stati = spento oppure acceso = 0 oppure 1;
  • 2 fili di corrente = 2 bit = 4 stati = spento oppure spento, spento oppure acceso, acceso oppure spento, acceso oppure acceso = 0 oppure 0, 0 oppure 1, 1 oppure 0, 1 oppure 1;
  • 3 fili di corrente = 3 bit = 8 stati = spento spento spento, spento spento acceso, spento acceso spento, spento acceso acceso, acceso spento spento, acceso spento acceso, acceso acceso spento, acceso acceso acceso = 000, 001, 010, 011, 100, 101, 110, 111;
  • 4 fili di corrente = 4 bit = 16 stati = 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111;
  • e così via dicendo.

Utilizzando questo metodo si può perciò creare un altro sistema per rappresentare qualunque numero si voglia: il sistema numerico binario. Ma che cos’è di preciso il sistema numerico binario?

Sistema numerico binario

Nel sistema numerico decimale che usiamo solitamente, chiamato anche sistema in base 10, abbiamo a disposizione dieci cifre da 0 a 9 che rappresentano i valori da zero a nove. Con il sistema numerico decimale ogni cifra assume un peso diverso a seconda della posizione in cui questa cifra si trovi:

  • se la cifra si trova nella prima posizione da destra questa avrà dieci possibili valori da zero a nove (unità);
  • se la cifra si trova nella seconda posizione da destra questa avrà un valore che si otterrà moltiplicando tale valore per dieci (decine);
  • se la cifra si trova nella terza posizione da destra questa avrà un valore che si otterrà moltiplicando tale valore per cento (centinaia);
  • se la cifra si trova nella quarta posizione da destra questa avrà un valore che si otterrà moltiplicando tale valore per mille (migliaia);
  • e così via dicendo.

Ad esempio, nel sistema numerico decimale il numero 2.649 si calcola come:

  • due per mille = duemila;
  • sei per cento = seicento;
  • quattro per dieci = quaranta;
  • nove per uno = nove.

Sommando poi questi quattro valori, cioè duemila più seicento più quaranta più nove, si ottiene il numero duemilaseicentoquarantanove, ossia 2.649. Dato che i circuiti elettrici con cui è composto un qualsiasi computer possono funzionare solo con due stati di tensione (ovvero assenza o presenza di tensione), lavorare con un sistema che contiene solo due cifre sembra perciò una scelta piuttosto sensata. Ecco perché nel sistema numerico binario, conosciuto più formalmente come sistema binario o sistema in base 2, ci sono solamente due cifre: zero e uno. Combinando però queste due sole cifre è possibile rappresentare lo stesso qualsiasi numero si voglia.
Proprio come avviene nel sistema numerico decimale anche nel sistema numerico binario la posizione di ogni cifra assume un peso diverso a seconda della posizione in cui questa cifra si trovi:

  • se la cifra si trova nella prima posizione da destra questa potrà avere solo due possibili valori: zero oppure uno;
  • se la cifra si trova nella seconda posizione da destra questa avrà un valore che si otterrà moltiplicando tale valore per due;
  • se la cifra si trova nella terza posizione da destra questa avrà un valore che si otterrà moltiplicando tale valore per quattro;
  • se la cifra si trova nella quarta posizione da destra questa avrà un valore che si otterrà moltiplicando tale valore per otto;
  • e così via dicendo.

Nel sistema binario, quindi, invece di moltiplicare ogni volta per dieci come nel sistema decimale, bisogna moltiplicare per due. Ad esempio, il numero 1011 nel sistema binario si può convertire nel sistema decimale in questo modo (contando a partire da destra verso sinistra):

  • uno per uno = uno;
  • uno per due = due;
  • zero per quattro = zero;
  • uno per otto = otto.

Sommando poi questi quattro valori, cioè uno più due più zero più otto, si ottiene il numero undici. In altre parole, il numero 1011 nel sistema binario equivale al numero 11 nel sistema decimale. Grazie quindi al sistema numerico binario, che si basa solo sulle cifre 0 e 1, è possibile rappresentare un qualsiasi numero all’interno del computer semplicemente attraverso un certo numero di fili di corrente che vengono percorsi o meno da elettricità.
In generale, più fili di corrente si utilizzano in un computer, maggiore è la quantità di numeri che è possibile rappresentare e memorizzare. L’unica cosa da tenere a mente è che ogni volta che si aggiunge un filo di corrente si sta in realtà moltiplicando per due la quantità di numeri che si possono rappresentare con i fili di corrente già presenti:

  • con un filo di corrente, cioè con 1 bit, si possono rappresentare 2 numeri;
  • con due fili di corrente, cioè con 2 bit, si possono rappresentare 4 numeri;
  • con tre fili di corrente, cioè con 3 bit, si possono rappresentare 8 numeri;
  • con quattro fili di corrente, cioè con 4 bit, si possono rappresentare 16 numeri;
  • con cinque fili di corrente, cioè con 5 bit, si possono rappresentare 32 numeri;
  • con sei fili di corrente, cioè con 6 bit, si possono rappresentare 64 numeri;
  • con sette fili di corrente, cioè con 7 bit, si possono rappresentare 128 numeri;
  • con otto fili di corrente, cioè con 8 bit, si possono rappresentare 256 numeri;
  • …;
  • con trentadue fili di corrente, cioè con 32 bit, si possono rappresentare da zero a più di quattro miliardi di numeri.

Il sistema binario viene ovviamente utilizzato anche per memorizzare i dati nella memoria di un computer (come la RAM o la ROM). Siccome la memoria nei computer è costituita da singole celle che di solito memorizzano al massimo 8 bit, si usa allora la convenzione che 8 bit equivalgono a 1 byte (si pronuncia bàit):

8 bit = 1 byte

Fino a questo momento si è parlato solo di come fa un computer a rappresentare dei numeri. Ma come fa un computer a rappresentare altre tipologie di informazioni, come del testo, delle immagini o dei suoni?

Testo tramite numeri binari

Dopo aver visto come rappresentare i numeri decimali in un computer usando il sistema binario sorge spontaneamente un’altra domanda: come si fanno a memorizzare nel computer altri tipi di dati come testo, immagini o suoni? La risposta è che occorre rappresentare tutti questi dati ricorrendo sempre al sistema binario.
Se prendiamo tutte le lettere dell’alfabeto e assegniamo a ciascuna di esse un numero otterremo automaticamente qualcosa del genere:

  • A sarà uguale a 1;
  • B sarà uguale a 2;
  • C sarà uguale a 3;
  • D sarà uguale a 4;
  • e così via dicendo.

Quindi possiamo rappresentare una parola o un paragrafo come una serie di numeri e, grazie al sistema binario, sarà possibile associare ogni carattere ad un certo numero (infatti, ogni parola che vedi sullo schermo di un computer viene rappresentata ricorrendo proprio ad un sistema del genere). In pratica avremo qualcosa di questo tipo:

  • A = 1 = 00001;
  • B = 2 = 00010;
  • C = 3 = 00011;
  • D = 4 = 00100;
  • E = 5 = 00101;
  • F = 6 = 00110;
  • G = 7 = 00111;
  • e così via dicendo.

Usando una codifica del genere possiamo codificare una parola come BADGE con la sequenza di numeri 21475 che, nel sistema binario utilizzato in questo esempio, corrisponde a 00010 00001 00100 00111 00101, cioè proprio come viene rappresentata all’interno di un computer tramite dei fili di corrente e dei segnali di tensione.
Oggigiorno la maggior parte dei computer utilizza un codice per la codifica dei caratteri chiamato ASCII, ma dato che non esiste una codifica con tutti i caratteri necessari adatti ad una lingua specifica (infatti anche per l’italiano ne occorre più di una) molto spesso si ricorre ad un’altra codifica che prende il nome di Unicode.
Da notare che i programmi del computer possono scegliere di rappresentare le stesse informazioni anche in modo diverso. Ad esempio, si può scrivere una semplice frase e memorizzarla come file di testo utilizzando il Blocco note o un altro software di elaborazione testi come Word ma, dato che il Blocco note non supporta tutte le codifiche supportate da Word, se si prova ad aprire un file creato con Word ricorrendo al Blocco note si otterrà qualcosa di visivamente incomprensibile. In altre parole, anche se due file diversi possono memorizzare le stesse informazioni, i programmi utilizzati per creare queste informazioni possono scegliere di aprirli utilizzando una codifica diversa. A seconda della codifica utilizzata si ottiene perciò un tipo di file diverso. Di solito, per identificare il tipo di file si ricorre all’utilizzo di tre caratteri separati per mezzo di un punto dal nome del file stesso. Questi tre caratteri particolari non rappresentano altro che l’estensione di un file. Ad esempio, un file di Word può avere l’estensione .docx mentre un file di testo può avere come estensione .txt (ossia una delle estensioni di file più utilizzate).

Immagini tramite numeri binari

Come fa un computer a visualizzare le immagini, i video ed ogni aspetto grafico che si vede su uno schermo? Tutto ciò che si vede sullo schermo di un computer è composto da minuscoli punti chiamati pixel (pronunciato pìcsel, termine inglese che deriva dalla contrazione di picture element, pronunciato pìctcer èlement, in italiano elemento di immagine). Ognuno di questi pixel ha il proprio colore che, a sua volta, può essere rappresentato da un certo numero. Se si definisce, perciò, un codice numerico da assegnare ai vari colori da rappresentare sarà possibile visualizzare sullo schermo qualunque cosa si voglia indicando, semplicemente, il numero del colore di ogni pixel presente in un determinato istante sullo schermo.
Fra le varie codifiche che permettono di associare dei colori a dei numeri il modello di colori RGB è senz’altro quello più utilizzato.

Che cosa sono i pixel e le codifiche ASCII e Unicode

Ecco come, attraverso i pixel, è costituita in realtà una qualunque immagine digitale.

Utilizzando il modello di colori RGB è possibile definire il colore di ogni pixel presente sullo schermo mediante la combinazione di tre colori base, vale a dire il rosso (red in inglese), il verde (green in inglese) e il blu (blue in inglese). In altre parole, combinando questi tre colori primari in modi diversi è possibile creare tutti gli altri colori che si vogliono.
Grazie all’associazione di questi tre colori base con tre numeri diversi compresi tra 0 e 255 è quindi possibile comporre ogni pixel di ciò che è visualizzato sullo schermo definendo l’intensità dei tre colori che compongono quel particolare pixel. Per chiarire meglio quanto appena detto vediamo un esempio pratico. Ammettiamo che io voglia rappresentare sullo schermo di un computer un pixel con il colore giallo. Per fare ciò dovrò ricorrere alla seguente combinazione di colori mediante il modello di colori RGB:

  • giallo = 255 (red), 255 (green), e 0 (blue).

Questo valore associato al giallo, ovvero 255 255 0, nel sistema binario corrisponderà a 11111111 11111111 00000000. Poiché 255 è il valore massimo che si può memorizzare in un byte (dato che un byte può rappresentare 256 diverse combinazioni di 0 e 1, da 0 a 255), ogni valore del modello di colori RGB occupa perciò un totale di tre byte. Applicando questo modello per associare un colore ad ogni pixel presente sullo schermo e considerando che di solito un’immagine contiene milioni di pixel mentre un video mostra, normalmente, 30 immagini al secondo, appare subito evidente perché il file di un’immagine o, peggio, di un film richiede molto spazio per essere memorizzato sulla memoria di massa di un computer. Per ovviare in parte a questo inconveniente sono stati comunque creati dei particolari metodi di compressione in maniera tale che i dati di un certo file occupino una minor quantità di spazio nel computer.
Da notare che il sistema binario non è l’unico che viene utilizzato per rappresentare i colori nelle immagini digitali. A volte, infatti, si ricorre anche al sistema numerico esadecimale, chiamato anche sistema esadecimale o sistema in base 16.

Suoni tramite numeri binari

Proprio come avviene per il testo e le immagini, anche i suoni possono essere rappresentati mediante una serie di numeri. Le vibrazioni dell’aria emesse da una certa sorgente sonora possono infatti essere rilevate tramite un microfono in grado di trasformare il fenomeno fisico in un opportuno segnale elettrico che varia nel tempo. Rappresentando graficamente l’andamento di questo segnale elettrico si può quindi ottenere un’onda audio, meglio conosciuta come forma d’onda, che può essere espressa in modo digitale con una certa approssimazione misurando, semplicemente, la grandezza di questa forma d’onda in istanti di tempo successivi. In altre parole, si converte la forma d’onda del suono analogico (cioè del suono reale) nella rispettiva forma digitale mediante una serie di numeri che rappresentano il suono in questione in diversi istanti di tempo.
Se si vuole ridurre l’approssimazione con cui viene creata la forma d’onda digitale, ottenendo così una migliore qualità del suono, si hanno a disposizione principalmente due metodi:

  • o si aumenta il numero di valori per misurare il suono da, ad esempio, 8 bit (che permettono di rappresentare 256 valori) a 16 bit (che permettono di rappresentare 65.536 valori);
  • o si diminuisce l’intervallo di tempo tra una misurazione e la misurazione successiva (aumentando, cioè, la frequenza degli istanti di tempo in cui viene misurata la forma d’onda del suono reale).

Ovviamente, entrambi questi metodi porteranno ad avere dei file audio con delle dimensioni maggiori sia per quanto riguarda lo spazio richiesto per essere memorizzati che per quanto riguarda lo spazio richiesto per essere trasmessi.

Programmi e comandi in binario

Naturalmente anche i programmi e i comandi che si impartiscono al computer devono essere rappresentati mediante il sistema binario. È proprio qui che entrano in gioco i linguaggi di programmazione che, in sostanza, ricevono dei comandi dal programmatore (usando del testo particolare) che vengono poi convertiti in istruzioni sotto forma di una ben precisa sequenza binaria. In questo modo tutte le informazioni provenienti dal mondo reale possono essere codificate in binario per fornirle come input al computer il quale poi, a sua volta, potrà elaborarle in base alle istruzioni che gli vengono impartite.

Conclusioni

Dunque, i computer usano il sistema binario perché, dato che i circuiti elettrici possono comprendere solo due stati di tensione (ossia presenza o assenza di tensione), è molto più efficiente e semplice creare dei computer in questo modo per memorizzare ed elaborare dei dati. Ad esempio il cervello di un computer, ossia il processore, contiene miliardi di transistor che possono trovarsi solo in uno dei due stati di tensione: acceso o spento. Nessuno però vieta di costruire dei computer con dieci livelli diversi di tensione per poter utilizzare il sistema numerico decimale, ma poi questi computer sarebbero decisamente più costosi da costruire poiché dovrebbero essere molto precisi nel compiere il loro lavoro (oltretutto in commercio si possono già trovare i computer quantistici che non utilizzano più il sistema binario).
Tuttavia, nonostante la possibilità di combinare solo due stati di tensione, con un computer è possibile rappresentare lo stesso anche dei dati più complessi, come numeri, lettere, immagini e video. Arrivati comunque a questo punto dovresti aver finalmente capito perché i computer usano il sistema binario.