In in­for­ma­ti­ca il codice binario, vale a dire il sistema binario, è on­ni­pre­sen­te ed è ancora noto a molti forse grazie alle lezioni di ma­te­ma­ti­ca. Un tale codice, con due soli stati, riproduce anche elementi complessi ed è spesso di difficile com­pren­sio­ne per le persone che si fidano solo del sistema decimale e delle sue 10 cifre. Al riguardo il codice binario presenta da un lato dei vantaggi e dall’altro è ne­ces­sa­rio dal punto di vista tecnico.

Cos’è il codice binario?

La maggior parte delle persone esegue i calcoli in base al sistema decimale nel quale ha a di­spo­si­zio­ne 10 cifre da 0 a 9 per posizione. I numeri più grandi sono rap­pre­sen­ta­ti con una nuova posizione. Il sistema binario funziona in maniera analoga. Qui tuttavia abbiamo a di­spo­si­zio­ne, come il prefisso latino “bi” sug­ge­ri­sce, soltanto due cifre (o due stati): 0 e 1, acceso e spento, chiaro e scuro, vero e falso. Anche in questo caso i numeri più grandi sono rap­pre­sen­ta­ti con posizioni diverse.

De­fi­ni­zio­ne

Codice binario: Un codice binario riproduce le in­for­ma­zio­ni soltanto at­tra­ver­so l’uso di due diversi stati.

Co­no­scia­mo il sistema binario so­prat­tut­to nell’ambito dei computer, nel cui interno funziona tutto con gli uni e gli zeri. È così che vengono me­mo­riz­za­ti i dati ed eseguiti i calcoli. Ma questo metodo di calcolo e questa rap­pre­sen­ta­zio­ne di dati vengono impiegati anche in altre si­tua­zio­ni. Ogni volta che ap­pren­dia­mo delle in­for­ma­zio­ni tramite uno dei due stati, si tratta fon­da­men­tal­men­te di un codice binario. Una luce in­ter­mit­ten­te in un di­spo­si­ti­vo elet­tro­ni­co ci rivela se il di­spo­si­ti­vo è in funzione o no, rimanendo su spento (stato 1) o acceso (stato 2).

Mediante la suc­ces­sio­ne degli stati di acceso e spento si possono tra­smet­te­re in­for­ma­zio­ni anche molto più complesse. La scrittura Braille ad esempio, un sistema di scrittura per ciechi, si basa sul codice binario: ogni carattere viene ri­pro­dot­to mediante una matrice a 6 punti. At­tra­ver­so la com­bi­na­zio­ne di ele­va­zio­ni (1/on) e campi piatti (0/off) è possibile rap­pre­sen­ta­re diversi caratteri.

Storia del sistema binario: da Leibniz ai sistemi com­pu­te­riz­za­ti

Anche se già nell’antichità sono stati uti­liz­za­ti i codici binari per l’inoltro delle in­for­ma­zio­ni, il sistema binario, come lo co­no­scia­mo oggi, fu inventato alla fine del XVII secolo da Gottfried Wilhelm Leibniz. Il filosofo e ma­te­ma­ti­co (e di fatto esperto uni­ver­sa­le) ricercò un metodo che tra­sfor­mas­se i concetti lin­gui­sti­ci della logica (vero e falso) in un sistema ma­te­ma­ti­co e optò per gli uni e gli zeri ancor oggi uti­liz­za­ti.

Già un paio di decenni prima Francis Bacon (un filosofo inglese) si chiedeva come poter ri­pro­dur­re un testo con l’ausilio di un codice binario. Un terzo esperto, George Boole, all’incirca un secolo e mezzo dopo Leibniz, ideò infine l’algebra booleana sulla base del sistema binario: un sistema con operatori logici, che ancora oggi è di fon­da­men­ta­le im­por­tan­za in in­for­ma­ti­ca.

Fatto

In­di­pen­den­te­men­te dai risultati europei, nel campo dell’arit­me­ti­ca binaria si sono svi­lup­pa­ti dei sistemi analoghi anche in altre regioni del mondo, e questo in parte già molto tempo prima: i caratteri in Yijing (oppure I Ging), un testo cinese del III secolo avanti Cristo, si basano su un codice binario e si ri­fe­ri­sco­no a loro volta alla dualità di Ying und Yang.

Nel XX secolo infine si sviluppò la tecnica digitale e furono prodotti i primi cal­co­la­to­ri elet­tro­ni­ci. Era compito dei pionieri del computer tradurre numeri e lettere in un sistema com­pren­si­bi­le per i computer stessi. Il codice binario è quindi pre­de­sti­na­to proprio per il fatto che si può tradurre l’astra­zio­ne di 1 e 0 in stati fisici. Nell’elet­tro­tec­ni­ca se c’è una tensione si applica 1, se non c’è tensione viene assunto 0.

Anche le schede perforate lavorano con un sistema binario per tra­smet­te­re in­for­ma­zio­ni: su questo tipo di scheda è possibile ri­pro­dur­re un de­ter­mi­na­to quan­ti­ta­ti­vo di caratteri at­tra­ver­so un foro esistente o mancante. In questo modo possono essere me­mo­riz­za­ti dei dati in modo per­ma­nen­te e comunque leggibili dalla macchina. Le schede perforate erano già in uso prima della scoperta dei computer, ad esempio nei telai o nei juke-box meccanici.

Il codice binario e il sistema binario, a un primo esame, sembrano essere sinonimi. Ma se si riflette sulle ca­rat­te­ri­sti­che di un codice, si noterà la dif­fe­ren­za: un codice è una tra­du­zio­ne re­go­la­men­ta­ta di caratteri. A ciascun carattere dell’originale viene assegnato un altro carattere o una sequenza di caratteri. Così è possibile con­ver­ti­re in ambo le direzioni. Al contrario un sistema esiste di per sé e non necessita di un confronto con un altro sistema. Se si fanno i calcoli nel sistema binario non c’è bisogno di fare ri­fe­ri­men­to al sistema decimale per ottenere dei risultati.

Ambedue sono presenti nel contesto IT: troviamo la codifica ad esempio nel codice ASCII. Con sette posizioni e due stati (1 e 0) è possibile ri­pro­dur­re tutte le lettere dell’alfabeto latino e altri caratteri. Ma poiché in questo modo non sono raf­fi­gu­ra­ti tutti i caratteri del mondo, si hanno a di­spo­si­zio­ne con UTF-8 persino da uno a 4 byte.

Com­pren­de­re la codifica binaria: come esegue i calcoli un computer?

I sistemi in­for­ma­ti­ci conoscono le unità bit e byte. Un bit è una cifra del codice che può cor­ri­spon­de­re a 1 o a 0. Pertanto anche la de­no­mi­na­zio­ne è un neo­lo­gi­smo di binary digit, “cifra binaria” o “posizione binaria”. Un byte a sua volta cor­ri­spon­de a 8 di questi bit. In linea di principio i computer sono dei cal­co­la­to­ri che, come una cal­co­la­tri­ce tascabile, lavorano con queste unità. Quando vogliamo eseguire un calcolo i numeri decimali vengono con­ver­ti­ti nel sistema binario.

0 1 2 3 4 5 6 7 8 9
0 1 10 11 100 101 110 111 1000 1001

Se ora pensiamo in byte il numero decimale 5 può essere rap­pre­sen­ta­to in questo modo: 00000101. Gli zeri iniziali all’inizio del numero binario non in­flui­sco­no sul valore e as­si­cu­ra­no soltanto che si mantenga un formato fisso di 8 cifre.

Fatto

Nel codice ASCII la rap­pre­sen­ta­zio­ne della cifra 9 cor­ri­spon­de a 0111001, 0 viene re­gi­stra­to cor­ri­spon­den­te­men­te come 0110000. Questo dipende dalla posizione delle cifre nella tabella dei codici.

Proprio come nel sistema decimale ogni posizione cor­ri­spon­de a una potenza. Mentre nel nostro sistema corrente si conta comunque sulla base di 10, nel sistema binario la base è 2. La prima posizione cor­ri­spon­de quindi a 20, la seconda a 21, la terza a 22 ecc.. Un byte che cor­ri­spon­de al numero decimale 23 può essere letto come segue:

27 26 25 24 23 22 21 20
0 0 0 1 0 1 1 1

Abbiamo quindi (decimale): 24 + 22 + 21 + 20 = 16 + 4 + 2 + 1 = 23

Anche i calcoli nel sistema binario fun­zio­na­no come nel sistema decimale che co­no­scia­mo: 1100 + 1010 = 10110. Cosa succede nel calcolo? Per sem­pli­fi­ca­re è possibile mettere in colonna l’addizione come nel calcolo scritto. Si conta da destra a sinistra.

  • 0 + 0 = 0
  • 0 + 1 = 1
  • 1 + 0 = 1
  • 1 + 1 = 0 con riporto 1
In sintesi

Per i computer questi calcoli sono naturali e vengono eseguiti in ogni momento. Non importa se PC, smart­pho­ne, tablet o cal­co­la­tri­ce tascabile, senza codice binario i nostri strumenti digitali quo­ti­dia­ni sarebbero im­pen­sa­bi­li.

Vai al menu prin­ci­pa­le