La rappresentazione delle informazioni in un computer Seconda parte.

Post on 02-May-2015

218 views 1 download

Transcript of La rappresentazione delle informazioni in un computer Seconda parte.

La rappresentazione delle La rappresentazione delle informazioni in un computerinformazioni in un computer

Seconda parteSeconda parte

Operazioni in binarioOperazioni in binario

Poiché sistema decimale e sistema binario Poiché sistema decimale e sistema binario seguono entrambi le regole dei sistemi di seguono entrambi le regole dei sistemi di numerazione posizionali lo stesso succede numerazione posizionali lo stesso succede quando si vogliono fare operazioni quando si vogliono fare operazioni aritmetichearitmetiche

AddizioneAddizione

Supponiamo di voler sommare due numeri Supponiamo di voler sommare due numeri ad otto bitad otto bitAd esempio 01011011 equivalente a Ad esempio 01011011 equivalente a 64+16+8+2+1=91 in base 10 e 00101110 64+16+8+2+1=91 in base 10 e 00101110 equivalente a 32+8+4+2=46equivalente a 32+8+4+2=46Notiamo esplicitamente che abbiamo Notiamo esplicitamente che abbiamo aggiunto all’inizio degli zeri per fare in aggiunto all’inizio degli zeri per fare in modo che i due numeri siano entrambi modo che i due numeri siano entrambi costituiti da 8 bitcostituiti da 8 bit

Questa è una cosa che un essere umano Questa è una cosa che un essere umano normalmente non fanormalmente non fa

Non iniziamo mai un numero con zero ma Non iniziamo mai un numero con zero ma con la prima cifra significativa diversa da con la prima cifra significativa diversa da zerozero

Se proviamo a scrivere un numero sulla Se proviamo a scrivere un numero sulla calcolatrice essa eliminerà calcolatrice essa eliminerà automaticamente gli zeri che comporremo automaticamente gli zeri che comporremo all’inizioall’inizio

Inoltre un essere Inoltre un essere umano non cerca di umano non cerca di fare in modo che i fare in modo che i numeri siano tutti numeri siano tutti della stessa della stessa lunghezza ma scrive lunghezza ma scrive tante cifre quante tante cifre quante sono quelle che gli sono quelle che gli servono servono

Infine un essere Infine un essere umano può sommare umano può sommare numeri anche di numeri anche di dimensioni diversedimensioni diverse

1 7 4 +

8 4 3 2 =       

8 6 0 6

Un’altra caratteristica dell’uomo è che può Un’altra caratteristica dell’uomo è che può pensare e scrivere numeri con un numero pensare e scrivere numeri con un numero di cifre qualsiasidi cifre qualsiasi

Ha bisogno soltanto di abbastanza Ha bisogno soltanto di abbastanza inchiostroinchiostro

Abbastanza carta…Abbastanza carta…

… … e di tempo. Perché il Padreterno e di tempo. Perché il Padreterno potrebbe avere altre idee al riguardopotrebbe avere altre idee al riguardo

Un computer non ha invece questa Un computer non ha invece questa capacitàcapacità

Per pensare dei numeri deve poterli Per pensare dei numeri deve poterli scrivere da qualche partescrivere da qualche parte

Esso usa degli oggetti che si chiamano Esso usa degli oggetti che si chiamano registriregistri

Ogni registro è costituito da celle ognuna Ogni registro è costituito da celle ognuna delle quali memorizza un singolo bitdelle quali memorizza un singolo bit

Come tutto quello che è fabbricato Come tutto quello che è fabbricato dall’uomo, i registri hanno dimensioni dall’uomo, i registri hanno dimensioni standard ad esempio possono contenere 8 standard ad esempio possono contenere 8 bit per cui la lunghezza massima dei bit per cui la lunghezza massima dei numeri è pertanto prefissatanumeri è pertanto prefissata

Un processore con registri ad 8 bit può Un processore con registri ad 8 bit può “pensare” soltanto numeri lunghi al “pensare” soltanto numeri lunghi al massimo 8 bitmassimo 8 bit

Possiamo costruire un microprocessore Possiamo costruire un microprocessore con registri più lunghi ma il discorso non con registri più lunghi ma il discorso non cambiacambia

Un microprocessore a 64 bit non potrà Un microprocessore a 64 bit non potrà pensare numeri da 65 bit o oltre!pensare numeri da 65 bit o oltre!

Va tenuto poi conto che una cella di Va tenuto poi conto che una cella di memoria può assumere soltanto due memoria può assumere soltanto due valori per cui può contenere soltanto 0 o 1valori per cui può contenere soltanto 0 o 1

E’ per questo motivo che le celle iniziali E’ per questo motivo che le celle iniziali anche se non sono utilizzate devono anche se non sono utilizzate devono essere poste a zeroessere poste a zero

Infine c’è il problema dei numeri negativiInfine c’è il problema dei numeri negativi

L’uomo utilizza i simboli + e –L’uomo utilizza i simboli + e –

Vedremo che il computer utilizzerà il bit Vedremo che il computer utilizzerà il bit più a sinistra per rappresentare il segno più a sinistra per rappresentare il segno del numero per cui ancora una volta è del numero per cui ancora una volta è importante che i numeri abbiano la stessa importante che i numeri abbiano la stessa lunghezzalunghezza

Torniamo alla nostra sommaTorniamo alla nostra somma

0 1 0 1 1 0 1 1 +

0 0 1 0 1 1 1 0

Cominciamo a sommare partendo da destra Cominciamo a sommare partendo da destra come faremmo in decimalecome faremmo in decimale

1+0=11+0=1

0 1 0 1 1 0 1 1 +

0 0 1 0 1 1 1 0 =

              1

Adesso dobbiamo sommare i bit in seconda Adesso dobbiamo sommare i bit in seconda posizioneposizione

1+1=2 ma in binario 2 si scrive con due bit 10 1+1=2 ma in binario 2 si scrive con due bit 10 per cui vuol dire che dobbiamo scrivere 0 e per cui vuol dire che dobbiamo scrivere 0 e riportare 1riportare 1

La stessa cosa succedeva in decimale se La stessa cosa succedeva in decimale se sommavamo ad esempio 8+5. Il risultato fa 13 sommavamo ad esempio 8+5. Il risultato fa 13 che in decimale non si può scrivere con una sola che in decimale non si può scrivere con una sola cifra per cui dovevamo scrivere 3 e riportare 1cifra per cui dovevamo scrivere 3 e riportare 1

1 riporto

0 1 0 1 1 0 1 1 +

0 0 1 0 1 1 1 0 =

            0 1

Sommiamo ora i bit in terza posizione più il Sommiamo ora i bit in terza posizione più il riportoriporto

0+1+1 di riporto =2 cioè in binario 10 per cui si 0+1+1 di riporto =2 cioè in binario 10 per cui si scrive 0 e si riporta 1scrive 0 e si riporta 1

1 riporto

0 1 0 1 1 0 1 1 +

0 0 1 0 1 1 1 0 =

          0 0 1

Sommando le quarte cifre più il riporto si avrà Sommando le quarte cifre più il riporto si avrà 1+1+1=3 che è pari in binario a 11 per cui si 1+1+1=3 che è pari in binario a 11 per cui si scrive 1 e si riporta 1scrive 1 e si riporta 1

1 riporto

0 1 0 1 1 0 1 1 +

0 0 1 0 1 1 1 0 =

        1 0 0 1

Questo è il risultato finaleQuesto è il risultato finale

0 1 0 1 1 0 1 1 +

0 0 1 0 1 1 1 0 =

1 0 0 0 1 0 0 1

La sottrazioneLa sottrazione

Anche la sottrazione si può fare nello Anche la sottrazione si può fare nello stesso modo con cui si fa una sottrazioen stesso modo con cui si fa una sottrazioen in decimalein decimale

1-0=11-0=1

0 1 0 1 1 0 1 1 +

0 0 1 0 1 1 1 0 =

              1

1-1=01-1=0

0 1 0 1 1 0 1 1 +

0 0 1 0 1 1 1 0 =

            0 1

Se adesso andiamo a sottrarre i bit di Se adesso andiamo a sottrarre i bit di posizione 3 vediamo che 0è più piccolo di posizione 3 vediamo che 0è più piccolo di 1 per cui è costretto a farsi fare un prestito1 per cui è costretto a farsi fare un prestito

Ragioniamo ora su come operavavamo in Ragioniamo ora su come operavavamo in decimaledecimale

Quando si faceva un prestito dalla cifra Quando si faceva un prestito dalla cifra superiore il prestito valeva 10superiore il prestito valeva 10

In quest’esempio 2 deve farsi fare un prestito e diventa 12 quindi si è In quest’esempio 2 deve farsi fare un prestito e diventa 12 quindi si è fatto prestare 10 [PROPRIO IL VALORE DELLA BASE!!!]fatto prestare 10 [PROPRIO IL VALORE DELLA BASE!!!]

3 2 4 -

1 5 2 =

       

1 7 2

IN MANIERA ANALOGA IN BINARIO SE IN MANIERA ANALOGA IN BINARIO SE UNA CIFRA SI FA FARE UN PRESTITO, UNA CIFRA SI FA FARE UN PRESTITO, IL PRESTITO VALE QUANTO LA BASE IL PRESTITO VALE QUANTO LA BASE CIOE’ 2CIOE’ 2

QUINDI NELL’OPERAZIONE CHE QUINDI NELL’OPERAZIONE CHE STAVAMO FACENDO 0 SI FA FARE UN STAVAMO FACENDO 0 SI FA FARE UN PRESTITO E DIVENTA 2, LE SI PRESTITO E DIVENTA 2, LE SI SOTTRAE 1 E DIVENTA 1SOTTRAE 1 E DIVENTA 1

prestito di 2

0 1 0 1 1 0 1 1 +

0 0 1 0 1 1 1 0 =

          1 0 1

Il bit in quarta posizione, facendo un Il bit in quarta posizione, facendo un prestito, è diventato 0 per cui ha bisogno a prestito, è diventato 0 per cui ha bisogno a sua volta di un prestitosua volta di un prestito

Diventa 2 e le si sottrae 1Diventa 2 e le si sottrae 1

prestito di 2

0 1 0 1 1 0 1 1 +

0 0 1 0 1 1 1 0 =

        1 1 0 1

PROSEGUENDO…PROSEGUENDO…

0 1 0 1 1 0 1 1 +

0 0 1 0 1 1 1 0 =

0 0 1 0 1 1 0 1

Facendo le sottrazioni possiamo avere Facendo le sottrazioni possiamo avere risultati negativirisultati negativi

E’ dunque necessario capire come il E’ dunque necessario capire come il computer rappresenta i numeri negativicomputer rappresenta i numeri negativi

Proviamo ad esempio ad eseguire Proviamo ad esempio ad eseguire l’operazione 27-46l’operazione 27-46

Il risultato è il seguenteIl risultato è il seguente

0 0 0 1 1 0 1 1 +

0 0 1 0 1 1 1 0 =

1 1 1 0 1 1 0 1

Il risultato avrebbe dovuto essere Il risultato avrebbe dovuto essere -19-19

In effetti la stringa di bit che In effetti la stringa di bit che abbiamo otttenuto rappresenta il abbiamo otttenuto rappresenta il numero -19 ma con una tecnica numero -19 ma con una tecnica

particolare che si chiama particolare che si chiama complemento a duecomplemento a due

1 1 1 0 1 1 0 1

La rappresentazione di un numero La rappresentazione di un numero negativo si ottiene nel seguente negativo si ottiene nel seguente

modomodoSi prende il numero positivo Si prende il numero positivo corrispondentecorrispondenteCominciando da sinistra si inverte ogni bit Cominciando da sinistra si inverte ogni bit (se è 0 lo si trasforma in 1 e viceversa)(se è 0 lo si trasforma in 1 e viceversa)Quando si arriva all’ultimo 1 della stringa Quando si arriva all’ultimo 1 della stringa ci si ferma: quel bit e tutti i bit che lo ci si ferma: quel bit e tutti i bit che lo seguono non vanno modificatiseguono non vanno modificatiQuello che otteniamo è il corrispondente Quello che otteniamo è il corrispondente numero negativo numero negativo

EsempioEsempio

+ 27 0 0 0 1 1 0 1 1

- 27 1 1 1 0 0 1 0 1

Esempio 2Esempio 2

+ 42 0 0 1 1 0 0 1 0

- 42 1 1 0 0 1 1 1 0

La prima cosa che si nota è che se il La prima cosa che si nota è che se il numero è positivo comincia con 0numero è positivo comincia con 0

Se il numero è negativo comincia da 1Se il numero è negativo comincia da 1

Noi stavamo calcolando 27- 46Noi stavamo calcolando 27- 46

0 0 0 1 1 0 1 1 +

0 0 1 0 1 1 1 0 =

1 1 1 0 1 1 0 1

Il risultato avrebbe dovuto essere Il risultato avrebbe dovuto essere -19-19

In effetti la stringa di bit che In effetti la stringa di bit che abbiamo otttenuto comincia con 1 abbiamo otttenuto comincia con 1 quindi è effettivamente un numero quindi è effettivamente un numero

negativonegativo

1 1 1 0 1 1 0 1

In effetti facendo il complemento a In effetti facendo il complemento a due si ottiene +19 quindi due si ottiene +19 quindi

effettivamente quella stringa di effettivamente quella stringa di partenza rappresenta -19partenza rappresenta -19

1 1 1 0 1 1 0 1

+ 19 0 0 0 1 0 0 1 1