La logica binaria

 

E' arrivato il momento di descrivere l'alfabeto con cui il calcolatore opera, ossia quali sono i simboli a lui comprensibili e quali operazioni può compiere su di essi.

Va innanzitutto sottolineato che un computer è una macchina veloce ma pur sempre una macchina e quindi non è (ancora?) in grado di utilizzare la fantasia nelle sue operazioni, si limita ad eseguire molto rapidamente operazioni elementari. Un alfabeto adatto a queste caratteristiche dev'essere composto da un numero limitato di lettere, per non richiedere uno sforzo concettuale troppo elevato per un calcolatore, ma dev'essere dotato di molte operazioni applicabili alle lettere esistenti, per permettere di ottenere, in un numero finito di passi, tutte le operazioni da noi richieste.

L'alfabeto universalmente adottato dai calcolatori è il linguaggio binario i cui simboli sono lo 0 e l'1. Su questi due simboli si possono applicare svariate operazioni e la loro concatenazione dà luogo ad operazioni e dati più complessi.

Il calcolatore memorizza un dato simbolo binario all'interno di una cella nella sua memoria. La cella di memoria più piccola, ossia quella che contiene esattamente un simbolo (0 oppure 1), si chiama bit (dall'Inglese BInary Digit, cioè cifra binaria). Quindi le memorie del calcolatore, siano esse fisse (Hard Disk) o volatili (Ram), non sono altro che un'insieme di celle capaci di memorizzare ognuna un bit. Spesso si utilizza il byte come unità di misura della memoria, un byte corrisponde ad una sequenza di 8 bit. {1 byte = 8 bit}

Siccome il numero di byte presente nelle memorie di oggi è spropositato, si utilizzano dei prefissi che servono da moltiplicatori, per esempio tre milioni e mezzo di byte si indica con 3,5 MB. I moltiplicatori utilizzati sono in genere tre: Kilo (K) che sta per 1000, Mega (M) che sta per 1 milione e Giga (G) che sta per 1 miliardo. Esempi di corretta rappresentazione.

Le operazioni che si possono applicare ai numeri binari sono le classiche operazioni algebriche di somma, sottrazione, moltipliczione e divisione. Ci sono anche degli operatori, caratteristici della logica binaria, che si applicano ai singoli bit, essi sono AND, OR e NOT. In particolare:

  • l'AND tra due bit vale 1 se e solo se entrambi i bit valgono 1

  • l'OR tra due bit vale 1 se almeno un bit vale 1

  • se un bit vale 0, il NOT di quel bit vale 1 e viceversa se il bit vale 1, il suo NOT vale 0

Ogni numero può essere rappresentato come sequenza di bit seguendo la codifica binaria. Tale codifica si basa sul concetto ovvio che ogni bit può rappresentare 2 valori assumendo il valore 0 o il valore 1. Risulta quindi naturale rappresentare il numero decimale zero con un bit il cui valore sia  0 e il numero decimale 1 con un bit il cui valore sia 1. Ora sorge il problema di come rappresentare numeri maggiori di 1. La soluzione adottata dalla codifica binaria è quella di rappresentare un numero come sequenza di bit in cui essi assumono un'importanza differente a seconda della posizione in cui compaiono. In particolare ogni bit rappresenta il valore 0 se il suo valore è 0, se invece il suo valore è 1, allora rappresenta il valore dato dalla potenza di due avente ad esponente la posizione del bit in considerazione. Per capire meglio osserva l'esempio seguente:

11001

Data la sequenza di bit riportata qua sopra, si possono identificare due bit particolari: il bit più a destra (quello fucsia) è detto BIT MENO SIGNIFICATIVO in quanto sta nella posizione numero zero della sequenza (si conteggia da destra verso sinistra) mentre  il primo bit a partire da sinistra (quello rosso) è detto BIT PIU' SIGNIFICATIVO in quanto risiede nella posizione più alta della sequenza. Infatti per ottenere il valore decimale rappresentato da tale numero binario si procede come segue:

1*20 + 0*21 + 0*22 + 1*23 +1*24 = 1 + 0 + 0 + 8 + 16 = 25

Come è facile capire, è sufficiente avere una sequenza di bit lunga a sufficienza per rappresentare ogni numero intero positivo. Esercizi di conversione decimale - binario

In particolare si nota che per avere un numero dispari il bit meno significativo deve valere 1, mentre deve valere zero per avere un numero pari. Il numero di  bit necessari a rappresentare un numero decimale è pari all'intero superiore del logaritmo in base 2 del numero in considerazione. Esercizi di conversione decimale - binario.

Le operazioni più semplici su numeri binari sono:

  • La somma: due numeri binari possono essere sommati solo se hanno lo stesso numero di bit, se questo non accade, è necessario affiancare a sinistra del numero più corto tanti zeri quanti sono i bit che mancano per raggiungere la lunghezza dell'altro numero. Una volta ottenuti i due numeri con lo stesso numero di bit, si esegue una somma colonna per colonna propagando l'eventuale riportoEsercizi di operazioni sui numeri in binario.

 

  • La differenza: per sottrarre due numeri è sufficiente sommare uno dei due con l'opposto dell'altro infatti a-b=a+(-b). Il problema è che non abbiamo visto come si rappresentano i numeri negativi. La codifica più utilizzata è quella in COMPLEMENTO A 2. Tale codifica afferma che: dato un numero in binario, per ottenere il suo opposto bisogna negare tutti i suoi bit a partire da sinistra fino all'1 meno significativo ESCLUSO! Esercizi di operazioni sui numeri in binario. Una volta fatta questa operazione, basta eseguire la somma binaria tra i due numeri come descritto sopra. NOTA: Se bisogna estendere il numero di bit di uno degli addendi bisogna farlo prima di applicare la codifica in complemento a 2!

Le altre operazioni (moltiplicazione divisione ecc.) sono più complesse e poco rilevanti in questo contesto e quindi vengono omesse. Se ti interessasse capire come funzionano, puoi guardare su un libro di informatica applicata o di elettronica.

 

   Indice generale

Boh