La rappresentazione delle informazioni in un computer Seconda parte
Operazioni in binario Poiché sistema decimale e sistema binario seguono entrambi le regole dei sistemi di numerazione posizionali lo stesso succede quando si vogliono fare operazioni aritmetiche
Addizione Supponiamo di voler sommare due numeri ad otto bit Ad esempio equivalente a =91 in base 10 e equivalente a =46 Notiamo esplicitamente che abbiamo aggiunto all’inizio degli zeri per fare in modo che i due numeri siano entrambi costituiti da 8 bit
Questa è una cosa che un essere umano normalmente non fa Non iniziamo mai un numero con zero ma con la prima cifra significativa diversa da zero
Se proviamo a scrivere un numero sulla calcolatrice essa eliminerà automaticamente gli zeri che comporremo all’inizio
Inoltre un essere umano non cerca di fare in modo che i numeri siano tutti della stessa lunghezza ma scrive tante cifre quante sono quelle che gli servono Infine un essere umano può sommare numeri anche di dimensioni diverse = 8606
Un’altra caratteristica dell’uomo è che può pensare e scrivere numeri con un numero di cifre qualsiasi Ha bisogno soltanto di abbastanza inchiostro
Abbastanza carta…
… e di tempo. Perché il Padreterno potrebbe avere altre idee al riguardo
Un computer non ha invece questa capacità Per pensare dei numeri deve poterli scrivere da qualche parte Esso usa degli oggetti che si chiamano registri Ogni registro è costituito da celle ognuna delle quali memorizza un singolo bit
Come tutto quello che è fabbricato dall’uomo, i registri hanno dimensioni standard ad esempio possono contenere 8 bit per cui la lunghezza massima dei numeri è pertanto prefissata Un processore con registri ad 8 bit può “pensare” soltanto numeri lunghi al massimo 8 bit
Possiamo costruire un microprocessore con registri più lunghi ma il discorso non cambia Un microprocessore a 64 bit non potrà pensare numeri da 65 bit o oltre!
Va tenuto poi conto che una cella di memoria può assumere soltanto due valori per cui può contenere soltanto 0 o 1 E’ per questo motivo che le celle iniziali anche se non sono utilizzate devono essere poste a zero
Infine c’è il problema dei numeri negativi L’uomo utilizza i simboli + e – Vedremo che il computer utilizzerà il bit più a sinistra per rappresentare il segno del numero per cui ancora una volta è importante che i numeri abbiano la stessa lunghezza
Torniamo alla nostra somma
Cominciamo a sommare partendo da destra come faremmo in decimale 1+0= = 1
Adesso dobbiamo sommare i bit in seconda posizione 1+1=2 ma in binario 2 si scrive con due bit 10 per cui vuol dire che dobbiamo scrivere 0 e riportare 1 La stessa cosa succedeva in decimale se sommavamo ad esempio 8+5. Il risultato fa 13 che in decimale non si può scrivere con una sola cifra per cui dovevamo scrivere 3 e riportare 1
1 riporto = 01
Sommiamo ora i bit in terza posizione più il riporto di riporto =2 cioè in binario 10 per cui si scrive 0 e si riporta 1 1 riporto = 001
Sommando le quarte cifre più il riporto si avrà 1+1+1=3 che è pari in binario a 11 per cui si scrive 1 e si riporta 1 1 riporto = 1001
Questo è il risultato finale =
La sottrazione Anche la sottrazione si può fare nello stesso modo con cui si fa una sottrazioen in decimale
1-0= = 1
1-1= = 01
Se adesso andiamo a sottrarre i bit di posizione 3 vediamo che 0è più piccolo di 1 per cui è costretto a farsi fare un prestito Ragioniamo ora su come operavavamo in decimale Quando si faceva un prestito dalla cifra superiore il prestito valeva 10
In quest’esempio 2 deve farsi fare un prestito e diventa 12 quindi si è fatto prestare 10 [PROPRIO IL VALORE DELLA BASE!!!] = 172
IN MANIERA ANALOGA IN BINARIO SE UNA CIFRA SI FA FARE UN PRESTITO, IL PRESTITO VALE QUANTO LA BASE CIOE’ 2 QUINDI NELL’OPERAZIONE CHE STAVAMO FACENDO 0 SI FA FARE UN PRESTITO E DIVENTA 2, LE SI SOTTRAE 1 E DIVENTA 1
prestito di = 101
Il bit in quarta posizione, facendo un prestito, è diventato 0 per cui ha bisogno a sua volta di un prestito Diventa 2 e le si sottrae 1
prestito di = 1101
PROSEGUENDO… =
Facendo le sottrazioni possiamo avere risultati negativi E’ dunque necessario capire come il computer rappresenta i numeri negativi Proviamo ad esempio ad eseguire l’operazione 27-46
Il risultato è il seguente =
Il risultato avrebbe dovuto essere -19 In effetti la stringa di bit che abbiamo otttenuto rappresenta il numero -19 ma con una tecnica particolare che si chiama complemento a due
La rappresentazione di un numero negativo si ottiene nel seguente modo Si prende il numero positivo corrispondente Cominciando da sinistra si inverte ogni bit (se è 0 lo si trasforma in 1 e viceversa) Quando si arriva all’ultimo 1 della stringa ci si ferma: quel bit e tutti i bit che lo seguono non vanno modificati Quello che otteniamo è il corrispondente numero negativo
Esempio
Esempio
La prima cosa che si nota è che se il numero è positivo comincia con 0 Se il numero è negativo comincia da 1
Noi stavamo calcolando =
Il risultato avrebbe dovuto essere -19 In effetti la stringa di bit che abbiamo otttenuto comincia con 1 quindi è effettivamente un numero negativo
In effetti facendo il complemento a due si ottiene +19 quindi effettivamente quella stringa di partenza rappresenta