1 sistemi di rappresentazione di numeri. 2 rappresentazione di numeri contenuto: rappresentazione di...
TRANSCRIPT
![Page 1: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/1.jpg)
1
SISTEMI DI RAPPRESENTAZIONE DI NUMERI
![Page 2: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/2.jpg)
2rappresentazione di numeri
contenuto:
rappresentazione di numeri in basi diverse
rappresentazione binaria,
rappresentazione di numeri con segno,
rappresentazione di numeri molto grandi e molto piccoli
aritmetica floating-point
![Page 3: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/3.jpg)
3rappresentazione di numeri
nel calcolatore i codici per rappresentare i numeri sono in generale fissi – questo perche'
le celle di memoria centrale dove sono memorizzati i numeri (quando usati da un programma) sono a formato fisso (ad es. 32 bit o 64 bit)
e i circuiti che eseguono le operazioni aritmetiche (sia per interi che per virgola mobile) sono a formato fisso;
![Page 4: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/4.jpg)
4rappresentazione di numerimemoria: insieme di celle ( o voci ) numerate: ciascuna ha un indirizzo (numero della cella) (indirizzi da 0 a max, numeri da N bit, gli indirizzi oggi arrivano al Gbyte, sono numeri a 32 bit, limite che sta aumentando) e un contenuto = valore o codice del dato memorizzato nella cella: K bit, dove K e' una potenza di 2, ad es 8, 16, 32, 64 bit: questo e' fisso per tutte le celle del calcolatore;
la circuiteria elettronica che gestisce la memoria svolge la funzione di accesso alla memoria: leggi un dato ( di K bit) dalla cella di memoria di indirizzo I (di N bit) scrivi un dato ( di K bit) nella cella di memoria di indirizzo I (di N bit)
![Page 5: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/5.jpg)
5rappresentazione di numeri
l'UC esegue le istruzioni dei programmila parte dell'unita' centrale che esegue le operazioni aritmetiche (+ - * /) e' detta unita'aritmetica, ed e' quasi sempre sdoppiata in * unita' per aritmetica intera * unita' per aritmetica in virgola mobileentrambe hanno i canali di ingresso dati e di uscita dati (risultati)a formato fisso, ad es. 32 oppure 64 bit (ma anche piu', 80 bit, 128 bit)==>>i dati interi e in virgola mobile sono a formato fisso
![Page 6: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/6.jpg)
6rappresentazione di numeri
agli inizi sono stati usati sistemi di codifica di numeri di tipo diverso : * per soddisfare le esigenze di calcolo scientifico e * e per soddisfare le esigenze delle applicazioni commerciali: per il calcolo scientifico furono adottati i due formati di codifica: numeri interi con segno +06220716 numeri in virgola mobile con segno +3,1415927E-0 entrambi a formato fisso (es. sopra, otto cifre)
i primi 15 anni esistevano calcolatori con codifica di numeri a lunghezza variabile e HW opportuno per trattarli; oggi esistono codifiche a lunghezza variabile ma sono in generale gestite software;
![Page 7: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/7.jpg)
7rappresentazione di numeri
* per esigenze delle applicazioni commerciali esistono linguaggi di programmazione e sistemi software con codifica di numeri a lunghezza variabile, di tre tipi:
interi numero pini davanti il Tutankamen: 2 numero anni galera per falso in bilancio: 0 numero esami di fondamenti di informatica 1 all'anno: 120 numero lingue ufficialmente riconosciute: 5000 quantita' testate atomiche XXX al 2002: 10240
numeri con virgola fissa es: indennità mensile (netto) senatore + diaria+rimborsi: 12.138,30 euro deficit bilancia imp/exp al luglio 05 di XXX : 59500000000,0 $
numeri con virgola mobile velocita' della luce : 299792,458 km/sec massa elettrone: 9.10938188 × 10-31 kilo
![Page 8: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/8.jpg)
8rappresentazione di numeri
nel calcolatore i codici per rappresentare i numeri sono in generale a formato fisso: il formato fisso impone dei limiti ai possibili codici e quindi ai possibili numeri l' insieme dei numeri standard (interi e virgola mobile) rappresentabili e' limitato
i numeri fuori dei limiti NON sono rappresentabili ! se un risultato produce un valore fuori di questi limiti si ha un errore HW (eccezione o interrupt)
![Page 9: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/9.jpg)
9rappresentazione di numeri
talvolta e’ richiesta una rappresentazione esatta dei numeri, qualunque sia il loro valore
es. bilancio di una ditta (pubblico o riservato) devo rappresentare i dati esattamente ...
che sono appunto tipiche applicazioni commerciali :
per molte applicazioni di tale tipo la rappresentazione dei numeri non e' a formato fisso, ma con sequenze di cifre di lunghezza non fissa, delimitate con codici particolari …(es. Linguaggio di programmazione Cobol)
particolari calcoli richiedono precisione molto spinta (praticamente illimitata): in genere, gestita SW.
![Page 10: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/10.jpg)
10rappresentazione di numeri
altri esempi di dati di tipo intero:
*numero studenti del corso di fond. di inform. del 1996*numero CD della biblioteca comunale del popolo, *paga di ragazzo di 9 anni di una fabbrica Nike in Marocco, *ammontare di una consulenza dell’avvocato Sgaioccich, *patrimonio complessivo di Bill Gates,
![Page 11: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/11.jpg)
11rappresentazione di numeri
spesso interessa
** solo un certo numero di cifre di un dato tipicamente per grandezze che hanno orgine da misure tecniche o scientifiche, ad es.
* distanza terra - luna, (precisione di 10 cifre) oppure * diametro cilindro della Honda GoldWing (precisione di 4 cifre, al 1/100 di mm)* quantita’ media di birra e di caffe’ (bevuta da un tedesco medio) precisione di 2 cifre
** e l’ordine di grandezza ... in unita' di misura appropriate, come anni luce, chilometri, millimetri, piedi, pollici, klaftre, galloni, barili,
![Page 12: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/12.jpg)
12rappresentazione di numeri
Per dati che hanno origine da misure (direttamente o attraverso calcoli) viene usato il formato in virgola mobile (*)che specifica le cifre e l'ordine di grandezza con due interi separati: +3,14159265 E+00dove i due numeri interi hanno un formato fisso (k1 e k2 cifre, qui k1=9 cifre e k2=2 cifre) -------------------------------------------------------------------------------------------------------------
(*) formato in virgola fissa significa un intero che rappresenta anche cifre decimali, ad es.: dati di 15 cifre: 00001 234 56 00000 rappresenta 1234, 5600123 456 78 91230 rappresenta 123456,789123009999 999 00 00000 rappresenta 999999900000 000 00 23456 rappresenta 0,0023456 molto usato nelle macchine calcolatrici elettromeccaniche
![Page 13: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/13.jpg)
13
tutte queste esigenze hanno risposte oggi standard nell’ambito della rappresentazione di numeri all’interno del calcolatore, e nei limiti di queste rappresentazioni.
altri es numero soci della Miracle.com 30402002 (unita') altezza del tavolo 82,5 centimetri (valore approssimato a 3 cifre) lunghezza delle coste marine italiane 9,532543E+3 chilometri ( ... falso, non so il valore vero;-) valore di pi 3,14159265E+00 (approssimato a 8 cifre) per capire meglio cos’e’ un oggetto tipo “numero” per il calcolatore, studieremo di seguito i vari sistemi di rappresentazione di numeri.
rappresentazione di numeri
![Page 14: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/14.jpg)
14rappresentazione di numeri
tutti i dati / tutti i tipi di informazione per il calcolatore si riducono a codici numerici;
es.: le immagini fotografiche o televisive o del cinema che tradizionalmente nascono "analogiche" (segnale continuo) si possono trasformare in dati numerici (in formato digitale)
analogamente i suoni (di vario genere) si possono codificare numericamente (suono digitale)
si noti che la precisione (e quindi la qualita') ottenibile con metodi analogici e' in generale minore rispetto la qualita' di segnali codificati numericamente
![Page 15: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/15.jpg)
15rappresentazione di numeridispositivi convertitori :
ADC analog to digital / DAC digital to analog
nota in figura la perdita di informazione nel passaggio A->D
![Page 16: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/16.jpg)
16rappresentazione di numeri
tutti i dati / tutti i tipi di informazione per il calcolatore si riducono a codici numerici; es.: gli attributi di un punto dell’ immagine sullo schermo
(un elemento dell’immagine = Picture Element = PIXEL)come intensita’ luminosa, tonalita’ di colore, saturazione, oppure intensita’ dei colori primari che lo compongono Rosso, Verde e Blu)sono rappresentabili con valori numerici, un pixel si codifica con "un" numero (una terna di num.)
l'immagine sullo schermo e'un insieme di numeri (quanti – dipende dalla precisione immagine, va da 25 x 80 a 480 x 640 (VGA) a 1000 x 1600, 2000 x 3000 ecc ...
![Page 17: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/17.jpg)
17rappresentazione di numeri
un esempio di immagine resa con risoluzione variabile:qui, 640x480 pixel (VGA)con 16M di colori (24 bit per pixel)
![Page 18: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/18.jpg)
18rappresentazione di numeri
riduciamo la risoluzione da 72 pix/pollice per un fattore 4, abbiamo un'immagine a 160x120 pixel (VGA)con 16M di colori (24 bit per pixel)
![Page 19: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/19.jpg)
19rappresentazione di numeri
riduciamo la risoluzione da 72 pix/pollice per un fattore 10, abbiamo un'immagine a 64x48 pixel (VGA)con 16M di colori (24 bit per pixel)
![Page 20: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/20.jpg)
20rappresentazione di numeri
riduciamo la risoluzione da 72 pix/pollice per un fattore 20, abbiamo un'immagine a 32x24 pixel (VGA)con 16M di colori (24 bit per pixel)
![Page 21: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/21.jpg)
21rappresentazione di numeri
se invece riduco il numero di bit per pixel, cioe' il numero di colori rappre- sentabili, l'immagine cambia come in esempio:qui con 16M colori (24 bit per pixel) e 640x480 pixel;
![Page 22: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/22.jpg)
22rappresentazione di numeri
qui con 256 colori (8 bit per pixel) - la differenza quasi non si vede
![Page 23: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/23.jpg)
23rappresentazione di numeri
qui con 16 colori (4 bit per pixel)
![Page 24: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/24.jpg)
24rappresentazione di numeri
qui con 4 colori (2 bit per pixel)
![Page 25: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/25.jpg)
25rappresentazione di numeri
qui con 2 colori ovverobianco/nero (1 bit per pixel), - ma: con i toni grigi resi con griglie di punti piu'o meno densi (dithering)
![Page 26: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/26.jpg)
26rappresentazione di numeri
analogamente per il suono: un suono puo' essere rappresentato da una sequenza di valori numerici che rappresentano l'intensita' del suono in ogni istante:
la " fedelta' " della rappresentazione di un suono e' data da: il numero di bit per un valore generico ad ogni istante (da 8 a 16 e oltre) - precisione di ogni "campione" il numero di valori per secondo (da 10 a 40 mila)
per poter ricostruire fedelmente un segnale nel tempo deve essere la frequenza di campionamento almeno il doppio della frequenza massima del segnale
![Page 27: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/27.jpg)
27rappresentazione di numeri
passiamo ora alla
codifica dei numeri
![Page 28: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/28.jpg)
28rappresentazione di numeri i primi codici numerici codificavano un numero = il dato numerico in "unario": per rappresentare n si usa un simbolo ripetuto n volte (unario: c’e’ un solo simbolo, l’uno)
uno I sei III IIIdue I I sette IIII IIItre I I I otto IIII IIIIquattro I I I I nove III III IIIcinque I I I I Idieci III II III II e poi?
venti ||||| ||||| ||||| |||||
trenta ||||| ||||| ||||| ||||| ||||| |||||
ma...per “scrivere” cento oppure mille ... e’ un’impresa !!
![Page 29: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/29.jpg)
29rappresentazione di numeri
unario: per codificare n uso un solo simbolo ripetuto n volte:uno I sei III IIIdue I I sette IIII IIItre I I I otto IIII IIIIquattro I I I I nove III III IIIcinque I I I I I …
la rappresentazione unaria va bene per numeri piccoli,
oppure per situazioni teoriche (casi particolari di alcune macchine di Turing … lo vedremo in seguito)
non va bene per la scrittura abituale non va bene per il calcolatore
![Page 30: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/30.jpg)
30rappresentazione di numeri per semplificare la rappresentazione di numeri circa 5000 anni fa in Egitto, Mesopotamia, poi Cina,piu’ tardi - circa 3000 anni fa - in America (centro e sud),per evitare la ripetizione eccessiva nel caso di numeri maggiori di 10 si introdusse una codifica piu' economica: si usarono dei simboli diversi per indicare un gruppo di 10, 20, 30, 100, 500, 1000 simboli ecc
Il sistema inizialmente non prevedeva un simbolo per indicare il numero zero.
Il numero zero fu introdotto dai babilonesi circa 600 anni prima di Cristo e poi ripreso in India e poi dagli arabi (800 d.c.,, prima "universita'" araba) da qui in Spagna (1000 d.c.), poi in Italia (1100) ecc.
![Page 31: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/31.jpg)
31rappresentazione di numeri
Dai sistemi di rappresentazione babilonesi / egiziani / fenici / greci deriva il sistema di numerazione romano (ibrido) Il sistema latino e' un codice non posizionale:il valore numerico associato ad un simbolo dipende in minima parte dalla sua posizione ed e' in gran parte fisso:
1 I 6 VI 11 XI2 II 7 VII 12 XII3 III 8 VIII 13 XIII4 IV 9 IX 14 XIV5 V 10 X 15 XV
20 XX30 XXX40 XL50 L e, ancora, ->
![Page 32: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/32.jpg)
32rappresentazione di numeri
sistema romano: 1 I 4 IV 5 V 10 X20 XX 60 LX30 XXX 70 LXX40 XL 80 LXXX50 L 90 XC
100 C 600 DC200 CC 700 DCC300 CCC 800 DCCC400 CD 900 CM500 D 1000 M....
![Page 33: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/33.jpg)
33numeri - il sistema romano
le operazioni aritmetiche con il sistema di numerazione romano o latino sono "piuttosto scomode" …
Si provi ad es. verificare che
MCMXCVI piu’ IV = MM (*)
oppure :
X L V I I I volte X I X = CMXII (+)________
(*) 1000+900+90+6 piu' 4 = 1996 piu' 4=2000(+) 48 * 19 = 912
![Page 34: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/34.jpg)
34rappresentazione di numeri
per semplificare le operazioni di addizione(e le altre operazioni aritmetiche)
si ricorreva al pallottoliere;
il pallottoliere e' rimasto in uso in molti paesi fino a pochi decenni fa (Russia, Cina, Giappone)dove il suo uso era insegnato a scuola (talvolta lo e' ancora)
![Page 35: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/35.jpg)
35rappresentazione di numeri
CODICI NUMERICI POSIZIONALI
Un numero e' codificato (rappresentato) da una sequenza di simboli, dove ogni simbolo ha un valore numerico definito dalla posizione del simbolo nella sequenza:
1984
rappresenta un valore dato dalla somma di 1 migliaia 9 centinaia 8 decine 4 unita'
1984 rappresenta 1000 * 1 + 100 * 9 + 10 * 8 + 1
![Page 36: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/36.jpg)
36rappresentazione di numeri CODICI NUMERICI POSIZIONALI
Un numero e' codificato (rappresentato) da una sequenza di simboli, dove ogni simbolo ha un valore numerico definito dalla posizione del simbolo nella sequenza. Es: codice numerico posizionale con 4 simboli (cifre) :
a b c d (o qualunque altri 4 simboli)
Ad ogni simbolo si associa un valore numerico, ad es.: a =3, b = 2, c = 1, d = 0,
Una stringa di tali simboli e' un codice di un numero: ad esempio abbac: abbac rappresenta un valore numerico dato da: n = a * p1 + b * p2 + b * p3 + a * p4 + c * p5dove p1, p2, p3, p4 e p5 sono valori numerici o "pesi" associati alle posizioni della stringa.
![Page 37: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/37.jpg)
37rappresentazione di numeri - un codice ... strano :
cont. es 4 simboli, a b c d a cui associamo i valori numerici a =3, b = 2, c = 1, d = 0,
una stringa di tali simboli: abbac rappresenta un valore numerico ottenuto dai simboli (cifre) moltiplicando ogni cifra per un peso diverso (i pesi sono convenzionali) e poi sommando: n = r * p1 + t * p2 + r * p3 + r * p4 + s * p5
es. con i pesi (NON usuali! - anzi, decisamente strani...) p1 = 200, p2 = 50, p3 = 17, p4 = 5, p5 = 71
il codice abbac vale
3*200 + 2*50 + 2*17 + 3*5 + 1*71 = ...
( sistema assolutamente inusuale... ;-)
![Page 38: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/38.jpg)
38rappresentazione di numeri
esempio: rappresentazione di numeri con 4 cifre:
a,b,c,d (leggi: zero, uno, due, tre)
bacabb rappresenta un valore numerico
ottenuto dai simboli (cifre) moltiplicando ogni cifra per un peso diverso (i pesi sono convenzionali) e poi sommando:
ca rappresenta il valore c * peso1 + a * peso0
scelta abituale: i pesi associati alle posizioni sono le potenze di una costante detta base del sistema, in un sistema a 4 cifre si assume convenzionalmente
peso0 = uno, peso1 = quattro
ca = c * peso1 + a * peso0 quindi ca = c * quattro + a * uno
![Page 39: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/39.jpg)
39rappresentazione di numeri
nel sistema in base 4 o "quaternario" abbiamo 4 cifre: a,b,c,d (leggi : zero, uno, due, tre),
la codifica abbac rappresenta un valore numerico ottenuto dai simboli (cifre) moltiplicando ogni cifra per un peso diverso (i pesi sono convenzionali) e poi sommando: n = a * p1 + b * p2 + b * p3 + a * p4 + c * p5
per il nostro sistema, una scelta e': p5 (ultimo peso a destra)vale 1 (unita') cioe' 4 alla 0p4 (penultimo peso a destra) vale 10 (quartine) = 4 alla 1p3 vale 100 (sedicine) = 4 alla due, ecc ba (vale b*p4+a*p5 = una quartina,zero unita') bd (vale b*p4+d*p5 = una quartina,tre unita') bac (vale b*p3 + a*p4 + c*p5= una sedicina + zero quartine + due unita')
![Page 40: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/40.jpg)
40rappresentazione di numeri
sistema "quaternario" con 4 cifre: a(zero), b(uno), c(due), d(tre)
scelta abituale: i pesi associati alle posizioni sono le potenze di una costante detta base del sistema,
per il nostro sistema, una scelta potrebbe essere p5 vale 1 (unita'); p4 vale 10 (quartine), p3 vale 100(sedicine) ecc;
0) a 1) b 2) c 3) d i primi 20 numeri 4) ba 5) bb 6) bc 7) bd si scrivono 8) ca 9) cb 10) cc 11) cd cosi' ...12) da 13) db 14) dc 15) dd 16)baa 17)bab 18)bac 19)bad 20)bba 21)bbb 22)bbc 23)bbd ad es : bbd =b*sedicine+b*quartine+d*unita'
![Page 41: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/41.jpg)
41rappresentazione di numeri
riscriviamo il sistema quaternario con 4 cifre: al posto di a, b, c, d scrivo 0 1 2 3
per il nostro sistema, una scelta dei pesi (abituale): p5 vale 1 (unita'); p4 vale 4 (quartine), p3 vale 16(sedicine) diremo il sistema posizionale con base 4, e per contare in base 4 avremo:
0) 0 1) 1 2) 2 3) 3 i primi 20 numeri 4) 10 5) 11 6) 12 7) 13 si scrivono 8) 20 9) 21 10) 22 11) 23 cosi' ...12) 30 13) 31 14) 32 15) 33 16)100 17)101 18)102 19)103 20)110 21)111 22)112 23)113
ad es : 113 =1*sedicine+1*quartine+3*unita' =riscritto in base dieci abituale: 113 = 16+4+3 = 23
![Page 42: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/42.jpg)
42rappresentazione di numeri Il sistema piu' usato e’ il sistema numerico posizionale con base dieci:
1 1 8 7 rappresenta
1*10^3 +9*10^2 +8*10^1 +7*10^0 = 1*1000 +1*100 +8*10 +7*
per un codice numerico posizionale in base b uso un insieme di b cifre (simboli): { s1,s2,s3,... sb }
Un dato di n+1 cifre c(n) c(n-1) c(n-2) c(n-3)...c(1) c(0)
rappresenta il numero (indico con b^k = b elevato alla k)
c(n)*b^n + c(n-1)*b^(n-1) + ... + c(1)*b^1 + c(0)*b^0
cioe’ (in base b): c n * 10..00 + .. + c 2 * 100 + c 1 * 10 + c 0 * 1
![Page 43: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/43.jpg)
43rappresentazione di numeri
si noti che nel sistema numerico posizionale con base dieci:
1 1 8 7 rappresenta
1*10^3 +9*10^2 +8*10^1 +7*10^0 =
1*1000 +1*100 +8*10 +7* 1
si puo' scrivere anche cosi':
( ( ( ( ( 1*10 ) + 1 ) * 10 + 8 ) * 10 ) + 7 )
![Page 44: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/44.jpg)
44rappresentazione di numeri
per un sistema con 4 simboli (cifre) sara' base = 4,e i pesi saranno le potenze di 4:
p4..p0= 256 64 16 4 1
e quindi d b d d ccon(d =3, c = 2, b = 1, a = 0) rappresenta:
3*p4 + 1*p3 + 3*p2 + 3*p1 + 2*p0 =3 * 10000 + 1 * 1000 + 3 * 100 + 3 * 10 + 2 * 1 (in base 4) =3*4^4 + 1*4^3 + 3*4^2 + 3*4^1 + 2*4^0 = (base 10)3*256 + 1*64 +3*16 + 3*4 + 2*1 =
768 + 64 + 48 + 12 + 2 = 832 + 62 = 894 in base 10
![Page 45: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/45.jpg)
45rappresentazione di numeri I primi venti numeri sono rappresentati in base 4 come segue (riportati numero in decimale e in base quattro):
0 0 1 1 11 232 2 12 30 <-3 3 13 314 10 <- 14 325 11 15 336 12 16 100 <- (non 40!)7 13 17 101 8 20 <- 18 1029 21 19 10310 22 20 110 <-
![Page 46: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/46.jpg)
46rappresentazione di numeri
es: 1323 rappresenta (e' la codifica di) :
1 * base^3 + 3 * base^2 + 2 * base ^1 + 3 * base^0
1 * 4*4*4 + 3 * 4*4 + 2 * 4 + 3 * 1
ovvero:
1*64 + 3 * 16 + 2 * 4 + 3
….
e 1987 cosa rappresenta in base 4 ? <<==
;-)
![Page 47: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/47.jpg)
47rappresentazione di numeri
... in base quattro il numero 1987 ...
... non rappresenta nulla
perche' 9,8,7 non sono cifre in base quattro -
in base b le cifre vanno da 0 a b-1 !!
in ogni caso la base si scrive 10 e rappresenta il numero b (tranne in unario)
Es. in ottale ovvero con base otto le cifre sono:
0 1 2 3 4 5 6 7
e la base otto si scrive 10 !!
![Page 48: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/48.jpg)
48rappresentazione di numeri nota che in ottale (base otto) il valore numerico della base e' otto, che in base 8 si scrive 10
in genere in un sistema posizionale con base b, b si scrive 10
otto in base 8 si scrive 10, e si indica con: 108
mentre si indica 8 in base 10 con: 810
quindi
108 = 810
![Page 49: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/49.jpg)
49rappresentazione di numeri in ottale (base otto) si conta:
0 1 2 3 4 5 6 7 a cui segue ->
10(*) 11 12 13 14 15 16 17 (*) 108 = 810
20 21 22 23 24 25 26 27
30 ... ...... ... 65 66 67
70 71 72 73 74 75 76 77 -> 7*8+7 =63 100 101 102 107
110 111 112 117 -> 64+8+7 =79....
![Page 50: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/50.jpg)
50rappresentazione di numeri
ad es. in base 12 ho dodici cifre, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B
dieci e undici in base 12 sono cifre, indicate con A e B !
quindi i primi 36 numeri - conto da 0 a 35 (35 in base 10):
0 1 2 3 4 5 6 7 8 9 A B (B vale 11)10 11 12 13 36 ... 19 1A 1B (1B vale 23)20 21 22 23 35 ... 29 2A 2B (2A vale 34)30 31 32 33 34 ... 39 3A 3B (39 vale 45)40 41 42 43 44 ... 49 4A 4B 50 ... (4B vale 4*12+B=48+11)60 ...
![Page 51: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/51.jpg)
51rappresentazione di numeri
CONVERSIONE da base b generica a base 10, esempio:
da base 8 a base 10, per definizione:
17 = 1*8+7 =15, 20 = 2*8 = 16, 76 = 7*8+6 = 62, 100 = 1*64 = 64 ecc
Per decodificare in base 10 un numero rappresentato in base 8 basta ricordare la definizione:
ad es. 5 1 5 ( in base 8) vale in base 10:
5*100 + 1*10 + 5*1 (in base 8) 5 * 64 + 1 * 8 + 5*1 (in base 10) = 320 + 8 + 5 = 333 (in base 10)
![Page 52: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/52.jpg)
52rappresentazione di numeri
ancora un es:
il numero 3 7 1 3 in base 8 diventa in base 10:
3 * 1000 + 7 * 100 + 1 * 10 + 3 * 1
tutto in base 8, che in base 10 diventa:
= 3*512 + 7 * 64 + 1 * 8 + 3 * 1 = 1536 + 448 + 8 + 3 = 1995 10
![Page 53: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/53.jpg)
53rappresentazione di numeri
un es. in base 3 ... (cifre 0,1,2 ):
ricorda come si conta in base tre:
0 1 2 10 11 12 20 21 22 100 101 102 110 111 112 120 121 122 200 201 202 210 211 212 220 221 2221000 …
che corrispondono ai numeri in base 10:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 …
quanto vale 1 2 2 1 0 1 (dato in base 3) = in base dieci ?
![Page 54: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/54.jpg)
54rappresentazione di numeri
quanto vale 1 2 2 1 0 1 (dato in base 3) = in base dieci ?
ricorda come si conta in base tre: 0 1 2 10 11 12 20 che sono i numeri 0 1 2 3 4 5 6 in base 10
1 2 2 1 0 1 = in base tre il significato e' noto: 1 * 100000 + 2* 10000 + 2 * 1000 + 1 * 100 + 0 * 10 + 1 * 1
che diventa in base dieci:1 * 243 + 2 * 81 + 2 * 27 + 1 * 9 + 0 * 3 + 1* 1 = 243 + 162 + 54 + 9 + 1 = 469 10 = 122101 3
![Page 55: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/55.jpg)
55rappresentazione di numeri In base due abbiamo due cifre 0 1 (cifre binarie,BInary digiT = BIT) per rappresentare i due numeri zero e uno, e 10 per rappresentare il numero due; i primi 20 numeri in binario:
1 1 11 10112
2 102 12 11002
3 112 13 11014 100 14 11105 101 15 11116 110 16 100007 111 17 100018 1000 18 100109 1001 19 1001110 10102 20 101002
nota: 101 = 4 +1=5; 110 = 4+2=6; 1101 = 8+4+1=13 ecc
![Page 56: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/56.jpg)
56rappresentazione di numeri
ricorda alcune potenze di due in binario:
2 = 2 alla 1; 4= 2 alla 2; 8 = due alla 3; 16 = 2 alla 4;32 = 2 alla 5; 64 = 2 alla 6; 128 = due alla 7; 256 = 2 alla 8; 512 = 2 alla 9;
1024 = 2 alla 10 ... = 1 Kilo 1 048 576 = 2 alla 20 = 1 Mega 1 073 741 824 = 2 alla 30 = 1 Giga
in base due scrivo:2 ->102 4->100 2 8->1000 2 16->10000 2 32->10 00002 64->100 0000 2 128->1000 0000 2 256->1 0000 0000 2 ecc
![Page 57: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/57.jpg)
57rappresentazione di numeri
es. il numero
1011012
rappresenta (tutto in binario):
1*1000002 + 0*100002 + 1*10002 + 1*1002 + 0 *102 + 12 ovvero (in decimale):
1* 3210 + 0*1610 + 1* 810 + 1 * 410 + 0 * 210 + 1
= 4510
![Page 58: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/58.jpg)
58rappresentazione di numeri conversione da base 2 a base 10 -basta ricordare le potenze di due ed il significato del codice,
4096 2048 1024 512 256 128 64 32 16 82^12 2^11 2^10 2^9 2^8 2^7 2^6 2^5 2^4 2^3
4 2 1 ad es 10000 2 = 2 alla 4 = 162^2 2^1 2^0
per cui 10100 = 1*2^4 +0*2^3 +1*2^2 +0*2^1 +0*2^0rappresenta 1*16 +0*8 +1*4 +0*2 +0*1 = 20
esercizio ... convertire in base dieci il numero dato in base due (qui inseriti tre spazi per migliore lettura):
101 0110 0110 01012
![Page 59: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/59.jpg)
59rappresentazione di numeri soluzione esercizio convertire in base dieci il numero dato in base due (qui inseriti tre spazi per migliore lettura):
101 0110 0110 0101
ottengo (raggruppando a 4 a 4 i bit, e ricordando i pesi di questi gruppi, che sono: 1 per l’ultimo a destra, 16 per il penultimo a destra, 256 per il terzultimo a destra (il secondo)e infine 4096 per il primo (un gruppo = 4 cifre binarie), quindi (in notazione mista):
101*4096 + 0110*256 + 0110*16 + 0101*1
ricordando la tabellina dei primi 16 numeri in binario, 101 = 5, 0110 = 6, 0101 = 5, quindi:
5*4096 + 6*256 + 6*16 + 5 = 20480 + 1536 + 96 + 5 = 22117
![Page 60: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/60.jpg)
60esercizio (quiz)
quale numero segue nella sequenza, e perche' ?(ovvero: come e’ costruita questa sequenza?)
10 11 12 13 14 20 22 101 ?
![Page 61: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/61.jpg)
61rappresentazione di numeri - tabella di corrispondenza
num\base 2 3 4 5 6 7----------------------------------------------------------------------------------------
uno 1 1 1 1 1 1
due 10 2 2 2 2 2
tre 11 10 3 3 3 3
quattro 100 11 10 4 4 4
cinque 101 12 11 10 5 5
sei 110 20 12 11 10 6
sette 111 21 13 12 11 10
otto 1000 22 20 13 12 11
nove 1001 23 21 14 13 12
dieci 1010 101 22 20 14 13
nota: in base 4 quattro scrivo 10, cinque scrivo 11ecc
nota la diagonale in tabella in cor- rispondenza della riga = colonna = base,e le diagonali immediatam. sopra e sotto...
![Page 62: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/62.jpg)
62rappresentazione di numeri
aritmetica elementare, date tabelle di addizione base 2 e 3 :
0 1 0 1 2 ---- ---------- 0 0 1 0 0 1 21 1 10 1 1 2 10 2 2 10 11
0+1=1 1+1=10 (binario) 1+1=2 2+1=10 (ternario)
da cui le somme in base 2,3,10 (stessi dati in basi diverse):
1 1 0 1 1 1 1 1 3 + 1 0 + 2 + 2 ------- ----- ----- 1 1 1 1 1 2 0 1 5 2 3 10
![Page 63: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/63.jpg)
63rappresentazione di numeri ... ancora somme:
nove piu' cinque (decimale) in base 2 e 3:
1 0 0 1 1 0 0 9 1 0 1 1 2 5------- ----- --1 1 1 0 1 1 2 14 2 3 10
----------------------------------------------------------------------------------------------------
undici e cinque (decimale):
1 0 1 1 1 0 2 11 1 0 1 1 2 5 ------- ----- --1 0 0 0 0 1 2 1 16 2 3 10-
![Page 64: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/64.jpg)
64rappresentazione di numeri ... ancora somme:
quindici piu' uno (decimale) in binario e ternario :
1 1 1 1 1 2 0 15 1 1 1 -------- ----- --1 0 0 0 0 1 2 1 16 2 3 10
![Page 65: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/65.jpg)
65rappresentazione di numeri
addizione in base otto -----------------------------------------------------
0 0 1 2 3 4 5 6 7 da cui ad1 1 2 3 4 5 6 7 10 es. 7+1=10 2 2 3 4 5 6 7 10 113 3 4 5 6 7 10 11 124 4 5 6 7 10 11 12 135 5 6 7 10 11 12 13 146 6 7 10 11 12 13 14 157 7 10 11 12 13 14 15 16
1 5 13 1 3 11 ottale /+ 2 + 2 5 5 decimale --- -- --- -- 1 7 15 2 0 16 8 10 8 10
![Page 66: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/66.jpg)
66rappresentazione di numeri
PRODOTTO: base 2 e 3:
0 1 0 1 2 --- -----------0 0 0 0 0 0 01 0 1 1 0 1 2 2 0 2 11
base 2 base tre1*0=0 1*2 = 2 1*1=1 2*2 =11
![Page 67: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/67.jpg)
67rappresentazione di numeri
es. (12*13=156)in base due:
1 1 0 0 * 1 1 0 1 ------------------ 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 --------------- 1 0 0 1 1 1 0 0 in base 10: 128 +16+8+4 = 156
PRODOTTO:base 2 e 3:
0 1 0 1 2
--- ---------
0 0 0 0 0 0 0
1 0 1 1 0 1 2
2 0 2 11
![Page 68: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/68.jpg)
68rappresentazione di numeri base 3 [ 12*16=192 ]
1 1 0 * 1 2 1 ---------------- 1 1 0 2 2 0 1 1 0 ----------- 2 1 0 1 0
che e'2*81+1*27+0*9+1*3+0*1 ==162+27+3 = 192
PRODOTTO: base 2 e 3:
0 1 0 1 2 --- -----------0 0 0 0 0 0 01 0 1 1 0 1 2 2 0 2 11
base 2 base tre1*0=0 1*2 = 2 1*1=1 2*2 =11
![Page 69: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/69.jpg)
69esercizio: prodotto
esercizio: calcolare 18 * 5 in base due
( 18 * 5 = 9 * 10 = 90 in base 10, in base 2: 90 = 64 + 16 + 8 + 2 = = 1*64 + 0*32 +1*16 +1*8 +0*4 +1*2 + 0*1 ovvero 1 0 1 1 0 1 0 con i pesi 64 32 16 8 4 2 1 )
se passo prima in binario, e poi faccio il prodotto in binario:
18 = 16 + 2 = (in base 2) = 10000 + 10 = 10010
5 = 4 + 1 = (in base 2) = 101
![Page 70: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/70.jpg)
70cont.esercizio prodotto
continua esercizio: calcolare 18 * 5 in base due
18 = 16 + 2 = (in base 2) = 10000 + 10 = 10010 5 = 4 + 1 = (in base 2) = 101
quindi 1 0 0 1 0 x 1 0 1 ------------ 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 ---------------------- 1 0 1 1 0 1 0 = 64 + 16 + 8 + 2
![Page 71: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/71.jpg)
71rappresentazione di numeri
tavola delle moltiplicazioni in base otto:
PRODOTTO: 2*4=10,3*5=17 1 2 3 4 5 6 7--------------------------0 0 0 0 0 0 0 01 1 2 3 4 5 6 72 2 4 6 10 12 14 163 3 6 11 14 17 22 254 4 10 14 20 24 30 345 5 12 17 24 31 36 436 6 14 22 30 36 44 527 7 16 25 34 43 52 61==========================
1 4 * 1 5 ------(base 8) 1 4 7 4 (o) ------ 2 3 4 (o) nb:4*58=248 ho 48, riporto 28,poi 1*58=5+2(rip)=7..(in base 10: 12 * 13 = 36 ------- 156
![Page 72: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/72.jpg)
72esadecimale (base 16)In base 16 si usano 16 cifre, normalmente indicate con:
0 1 2 3 4 5 6 7
8 9 A B C D E F
leggi: zero, uno, .. nove, dieci, undici, dodici, ... quindici)
I primi 20 numeri in base 16 sono(base10/base16):
1 2 3 4 5 6 7 8 9 10 base 101 2 3 4 5 6 7 8 9 A base 16
11 12 13 14 15 16 17 18 19 20 base 10 B C D E F 10 11 12 13 14 base 16
esercizi: 1) quanto vale C * D in base 16 ?2) costruire la tabella di moltiplicaz. per base 16.
![Page 73: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/73.jpg)
73CAMBIO DI RAPPRESENTAZIONE
(rip.) per decodificare in base 10 un numero scritto in una base generica e' sufficiente ricordare la definizione. Es:
dato (in binario): 1 0 0 0 1 1 1 1 (cifre) 7 6 5 4 3 2 1 0 (rango)128 64 32 16 8 4 2 1 (peso)
= 1*2^7 + 0*2^6 + .. 1^2^3 + 1*2^2 + 1*2^1 + 1*2^0 = = 1*128 + 0*64 + .. + 1*8 + 1*4 + 1*2 + 1*1 = 143
anche cosi': = ((( ((( 1*2+0)*2+0)*2+0)*2 +1)*2+1)*2+1)*2+1 dove il primo 1 viene moltiplicato per 2^7, il secondo (zero) per 2^6 ecc
![Page 74: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/74.jpg)
74CAMBIO DI RAPPRESENTAZIONE - dal BINARIO->
Raggruppando le cifre binarie (bit) a tre a tre, partendo da destra verso sinistra, si converte la rappresentazione da base due a base otto:il dato di partenza 143 (base 10) ovvero in base due 10 00 11 11 vale (cifre bin. a tre a tre):
010 001 111
(1*2+0) * 2^6 + (0*4+0*2+1) * 2^3 + (1*4+1*2+1) * 2^0
= 2 * 64 + 1 * 8 + 7 * 1 = = 2 * 8^2 + 1 * 8^1 + 7 * 8^0 = 2 1 7
in base 8, che vale
= 2 * 64 + 1 * 8 + 7 = 128 + 8 + 7 = 143 in base dieci
![Page 75: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/75.jpg)
75CAMBIO DI RAPPRESENTAZIONE - dal BINARIO->
per passare da base due a base sedici e' sufficiente raggruppare i bit a quattro a quattro:lo stesso dato 143 che in base due si scrive: 10 00 11 11
vale 1000 1111
(1*8+0*4+0*2+0) * 2^4 + (1*8+1*4+1*2+1*0) * 2^0 = 8 * 16 + 15 * 1 = = 8 F in base sedici
= 8 * 16 + 15 = 128 + 15 = 143 in base 10
NOTA: l’esadecimale si usa solo come rappresentazione piu’ concisa del binario [ raggruppiamo il binario a 4 a 4 cifre partendo da destra e abbiamo l’ esadecimale ] .. il binario perche’ e’ usato dal calcolatore ...
![Page 76: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/76.jpg)
76CAMBIO DI RAPPRESENTAZIONE
Ricordiamo ancora la tabella dicorrispondenza dei codici numerici da 1 a 15 nelle basi (10)(16)(8)(2):
0 0 0 000 8 8 10 10001 1 1 001 9 9 11 10012 2 2 010 10 A 12 10103 3 3 011 11 B 13 10114 4 4 100 12 C 14 11005 5 5 101 13 D 15 11016 6 6 110 14 E 16 11107 7 7 111 15 F 17 1111________________________________
il numero 10 (base 10) in base otto si scrive 12, e in base 2 si scrive 1010;
il numero 14 in base 8 e' 16 e in base 2 e' 1110
...
![Page 77: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/77.jpg)
77RAPPRESENTAZIONE BIN ... ultimi 4 esempi ...
- due es da base 2 a base 8 o 16:
per passare da base 2 a base 8 prendo i bit a tre a tre, da base 2 a base 16 prendo i bita a 4 a 4 (sempre da destra verso sinistra):
dato 10 00 11 11 = = 10 001 111 = 2 1 7 base 8 nota: il raggruppamento = 1000 1111 = 8 F base 16 inizia da destra verso sin.
dato 10 10 10 10 10 == 1 010 101 010 = 1 2 5 2 base 8, bit a tre a tre;= 10 1010 1010 = 2 A A base 16, bit a 4 a quattro
![Page 78: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/78.jpg)
78RAPPRESENTAZIONE BIN ... ultimi 4 esempi ...
... e due es. da base 16 a base 8 (uso base 2):
7B5C dato in base 16 =
= 0111 1011 0101 1100 cambio raggruppamento: = 0 111 101 101 011 100 = 0 7 5 5 3 4 (in base 8)
1991 dato in base 16 =
= 0001 1001 1001 0001 cambio raggruppamento: = 0 001 100 110 010 001 = 0 1 4 6 2 1 (in base 8)
![Page 79: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/79.jpg)
79CAMBIO DI RAPPRESENTAZIONE DA DECIMALE ...
procedimento per passare da base 10 ad altra base: richiede un po' piu' lavoro, ma e' ancora basato sulla definizione:
L'ultima cifra di un codice numerico posizionale in base b e' sempre il resto della divisione per b [“cio’ che resta dopo aver raggruppato gli oggetti a b a b"],
quindi: dato un numero in base 10 ad es. 152, l'ultima cifra "a" della sua rappresentazione in base b , ...fedcba, e' data da (13 MOD 5 = resto di 13 diviso 5 = 3 !!):
n MOD b = 152 MOD b = (...fedcba) MOD b = a
ad es. se b=8 allora la cifra a = n MOD 8;
![Page 80: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/80.jpg)
80CAMBIO DI RAPPRESENTAZIONE DA DECIMALE ...(ripeto..) dato numero n in base 10, l'ultima cifra "a" della sua rappresentazione in base b , ...fedcba, e' data dal resto della divisione di n per la nuova base b: n MOD b = (...fedcba) MOD b = a
per passare da codifica da base 10 (es. 152) in base 8, calcolo le singole cifre (dall'ultima in poi) dividendo ripetutamente (ad ogni passo prendo come dividendo il quoziente del passo precedente) per la base nuova (qui otto) e mi segno i resti (ottengo per prima l'ultima cifra)
152 = 19 * 8 + 0 -> resto 0 -> "a" =0, 19 = 2 * 8 + 3 -> resto 3 -> "b" =3, 2 = 0 * 8 + 2 -> resto 2 -> "c" =2, 0 = 0 * 8 + 0 -> resto 0 -> "d" =0,a questo punto smetto,
quindi 15210 = 2308
![Page 81: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/81.jpg)
81CAMBIO DI RAPPRESENTAZIONE DA DECIMALE ...
ancora, lo stesso dato in base 4:
152 = 38 * 4 + 0 -> resto 0 -> "a" = 0, 38 = 9 * 4 + 2 -> resto 2 -> "b" = 2, 9 = 2 * 4 + 1 -> resto 1 -> "c" = 1, 2 = 0 * 4 + 2 -> resto 2 -> "d" = 2, 0 = 0 * 4 + 0 -> resto 0 -> "e" = 0,
quindi 152 = 2120 10 4verifica (da ottale in base 4, passando per il binario):2 3 0 = 010 011 000 = 0 10 01 10 00 = 2120 8 2 2 4
... ricordiamo che era: 152 = 230 10 8
![Page 82: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/82.jpg)
82esercizi:
calcolare 11011 + 110111 in base 2 <<<
quanto fa 322 + 123 in base 4 ?
quanto fa 322 + 123 in base 5 ? <<<
quanto fa 304 + 552 in base 6 ?
calcolare 701 + 77 in base 8
calcolare 1202 x 22 in base 3 <<<
![Page 83: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/83.jpg)
83
1 1 0 1 1 addendo 1 1 0 1 1 1 addendo ------------ passo 1 1 0 1 1 0 0 somme1 1 1 1 riporti1
1 0 1 1 0 0 somme2 1 1 1 riporti2 ------------ passo 2 0 0 1 0 1 0 somme3 1 0 0 1 0 0 riporti 3
0 0 1 0 1 0 somme3 1 0 0 1 0 0 riporti 3 ------------ passo 3 1 0 0 0 0 1 0 somme4 1 riporti4
1 0 0 0 0 1 0 somme4 1 riporti4 ------------ passo 4 1 0 1 0 0 1 0 somma finale riporti finali
verifica: 110112 = 16+8+3=2710 ; 110 111 = 32+16+7=5510 ; 27+55= 8210 ; 8210 = 64+16+2=1 010 010
calcolare 11 011 + 110 111 in base 2
![Page 84: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/84.jpg)
84quanto fa 322 + 123 in base 4 ? 3 2 2 1 2 3 (n.b: 2+3=11) | ------ | in breve: 0 0 1 somme parziali | 3 2 2 1 1 1 riporti | 1 2 3 ------ | ------- 1 1 1 0 somma finale | 1 1 1 1
quanto fa 322 + 123 in base 5 ? in breve: 3 2 2 1 2 3 ------ 1 0 0 0
![Page 85: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/85.jpg)
85quanto fa 304 + 552 in base 6 ?
3 0 4 5 5 2 1 3 0 0
Ricorda: 3+5=12 (in base 6), scrivo 2 riporto 1 … 4+2 = 6 (in base 6), quindi 10, scrivo 0 riporto 1
![Page 86: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/86.jpg)
86
calcolare 701 + 77 in base 8
7 0 1 7 7 1 0 0 0
calcolare 1202 x 22 in base 3 1 2 0 2 x 2 2 1 0 1 1 1 1 0 1 1 1 1 1 1 2 2 1
![Page 87: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/87.jpg)
87esercizi
verificare:
1) 1984 (base 10) = 2201111 (base 3) = 3700 (in base 8)
2) 2576 in base 8 = 010101111110 (in base 2)
3) 14 + 15 = 31 (base 8)
4) C * D = 9C (base 16)
(segue soluzione)
![Page 88: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/88.jpg)
881a) 1984 (base 10) = 2201111 (base 3)
1984/3 = 661 resto 1 18 04 661/3 = 220 resto 1 1 6 01 220/3 = 73 resto 1 10 1 73/3 = 24 resto 1 13 1 24/3 = 8 resto 0 0 8/3 = 2 resto 2 2 2/3 = 0 resto 2
verifica:2201111 3 vale in base 10:(((((2*3+2)*3+0)*3+1)*3+1)*3+1)*3+1=(((( 8*3+0)*3+1)*3+1)*3+1)*3+1=((( 24*3+1)*3+1)*3+1)*3+1= ((73*3+1)*3+1)*3+1 = (220*3+1)*3+1 = 661*3+1= 1983+1 = 1984
![Page 89: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/89.jpg)
89 esercizi
1b) 1984 (base 10) = 3700 (in base 8)
1984/8 = 248, resto 0 38 64 248/8 = 31, resto 0 0 31/8 = 3, resto 7
3/8 = 0, resto 3
Verifica: 3*8^3 + 7*8^2 +0 +0 = 3*512 + 7*64 = 1536 + 448 = 1984
![Page 90: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/90.jpg)
90esercizi
2) 2576 in base 8 = 010101111110 (in base 2)
basta espandere le cifre ottali in gruppi di 3 bit,Ricordando la tabellina di corrispondenza binario - ottale:
0 000 da cui: 1 001 2 5 7 6 2 010 010 101 111 110 3 011 4 100 che e' il risultato richiesto .. 5 101 6 110 7 111
![Page 91: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/91.jpg)
91esercizi
3) 14 + 15 = 31 (base 8) .. ricorda la tabella di addizione
-------------------------- da cui: 0 | 0 1 2 3 4 5 6 7 1 4 1 | 1 2 3 4 5 6 7 10 + 1 5 2 | 2 3 4 5 6 7 10 11 ------ 3 | 3 4 5 6 7 10 11 12 2 1 4 | 4 5 6 7 10 11 12 13 <-1 5 | 5 6 7 10 11 12 13 14 ------ 6 | 6 7 10 11 12 13 14 15 3 1 7 | 7 10 11 12 13 14 15 16
![Page 92: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/92.jpg)
92esercizi
4) C * D = 9C (base 16)
C = 12 (ricorda: A=10, B=11, C=12, D=13, E=14, F=15) D = 13 12 * 13 = -------- 12 36 -------- 156 10 =
15610, divido ripetutamente per 16:156/16 = 9 (16*9= 144, 156-144=12=resto=C)9/16=0, resto 9, quindi 15610 = 9C16
![Page 93: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/93.jpg)
93 FRAZIONI
FRAZIONI
Come si interpreta in base 4 :
2321,0222
Oppure:
come si trasforma la codifica
39,71 da base 10 in base generica ?
![Page 94: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/94.jpg)
94 FRAZIONI
Come si trasforma da base b1 a base b2 un dato numerico con parte fratta non nulla - ad es.:
3 , 14 10 = xx , yy16 ?
Dalla definizione:
0,abcde... in base B
rappresenta il numero:
a b c d e --- + --- + --- + --- + --- + ... B B^2 B^3 B^4 b^5
![Page 95: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/95.jpg)
95 FRAZIONI
Cambio base:
29,45 = 29 + 0,45
per cambiare base trasformo separatamente la parte intera e separatamente la parte fratta:
Per la parte intera sappiamo gia' come fare 29 (base 10) = xxx (base b)
Per la parte fratta:
0,45 = 0,abcdef... in altra base b ?
![Page 96: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/96.jpg)
96 FRAZIONI
Per la parte fratta:
0,45 = 0,abcdef... in altra base b ?
ricorda la definizione:
0,45 = 4/10 + 5/100 ... e :
0,abcde in base b significa ovviamente
a/10 + b/100 + c/1000 + d/10000 + e/100000
essendo 10, 100, 1000 ecc espressi nella nuova base, ovvero b, b^2, b^3, ecc
![Page 97: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/97.jpg)
97 FRAZIONI
Ancora: 0,5 in base 10 vale 0,1 in base 2 (un mezzo)-- ovvero: 5/10 (base 10) = 1/10 (base 2) = 1/2 in base 10quindi 0,510 = 0,12
Ancora: 0,125 in base 10 = 1/8 in base 10 = 1/100 in base 2quindi 0,12510 = 0,0012
![Page 98: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/98.jpg)
98 FRAZIONI
0,4510 = 0,abcdef... b da base 10 ad altra base b
procedimento per calcolare le cifre abcdef... della parte fratta nella nuova base:
moltiplico entrambe le parti per b -
0,xxx * b = 0,abcdef... * b
ottengo a sinistra e a destra una cifra intera,
y,zzz = a,bcdef...
devono essere uguali sia la parte intera che la parte fratta, separatamente, quindi ottengo la prima cifra della parte fratta !
y = a ... e poi ripeto ...
![Page 99: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/99.jpg)
99conversione di base per frazioni
0,45 = 0,abcdef... conversione da base 10 a base 5
se moltiplico entrambe le parti per b :
0,45 * 5 = 0,abcdef... * 5 ottengo: 2,25 = a,bcdef... devono essere separatamente uguali la parte intera e la parte fratta, quindi 2 = aottengo la prima cifra della parte fratta moltiplicando il dato di partenza (in base 10) per la base nuova b (qui cinque); ripeto con solo la parte fratta:
0,25 * 5 = 0,bcdef * 5 ottengo: 1,25 = b,cdef... e quindi 1 = b
![Page 100: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/100.jpg)
100conversione di base per frazioni
0,45 = 0,abcdef... conversione da base 10 a base 5
moltiplico ripetutamente entrambe le parti per b, ad ogni passo ottengo una cifra della parte fratta in base b, e poi ripeto con solo la parte fratta rimasta:
0,45 * 5 = 0,abcdef... * 5 ottengo: 2,25 = a,bcdef... quindi a = 2; ripeto:
0,25 * 5 = 0,bcdef... * 5 ottengo: 1,25 = b,cdef... e quindi b = 1; ripeto:
0,25 * 5 = 0,cdef... * 5 ottengo: 1,25 = c,def... e quindi c = 1; ripetendo,
0,4510 = 0,211111... 5 in base 5 (periodico)
![Page 101: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/101.jpg)
101conversione di base per frazioni
2) esempio: trasformare 0,71 da base 10 in base 5, cioe' trovare le cifre a,b,c,d,... della parte fratta in base 5. 0,71 = 0,abcdefg.. ==>> moltiplico ripetutamente per 5: / in base 10 \ / parte in base 5 \0,71 * 5 = 3,55 = a,bcdefg... quindi a = 30,55 * 5 = 2,75 = b,cdefg.... quindi b = 20,75 * 5 = 3,75 = c,defg..... quindi c = 30,75 * 5 = 3,75 = d,efg...... quindi d = 3 (periodico)
quindi 0,7110 = 0 , 3 2 3 3 3 35 cioe' 7 1 3 2 3 3 --- + --- = --- + --- + --- + --- + ... 10 100 5 25 125 625nota: spesso ottengo un numero periodico nella nuova base!
![Page 102: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/102.jpg)
102conversione di base per frazioni 3) es.: trovare la rappresentazione di 0,45 (dato in base 10) in base 8, ovvero trovare le cifre a,b,c,d,e,f,g, ... tali che
0,4510 = 0,abcdefg ... 8
Moltiplico per la base nuova ripetutamente
ParteFratta 0,45*8 =3,6 = a,bcdefg-> a=3 0,6 *8 =4,8 = b,cdefg... b=4 0,8 *8 =6,4 = c,defg... c=6 0,4 *8 =3,2 = d,efg... d=3 0,2 *8 =1,6 = e,fg... e=1 0,6 *8 =4,8 = f,g... f=4 0,8 *8 =6,4 = g,... g=6
la sequenza 4 6 3 1 si ripete, quindi:
0,45 (base 10) = 0,3 4631 4631 4631 ...
![Page 103: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/103.jpg)
103nota sul cambio di base
Entrambi i procedimenti di conversione (parte intera e parte fratta) sono basati sul fatto che:
dividere (o moltiplicare) per la base b significa spostare la virgola (di base b) di una posizione a sinistra (o a destra) (come ovvio in base 10);
Esempi in binario: 11 x 10 = 110 (3 x 2 = 6) 101 x 10 = 1010 (5 x 2 = 10) 110 x 10 = 1100 (6 x 2 = 12) 111 x 10 = 1110 (7 x 2 = 14)
1110 : 10 = 111 (14 : 2 = 7) 1010 : 2 = 101 (10 : 2 = 5 ) 1000 : 10 = 100 (8 : 2 = 4) ecc
![Page 104: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/104.jpg)
104Note sul cambio base
Come si scrive 0,1 (base dieci)
in base due?
ovvero - se scrivo 1/10 in base due, lo scrivo in forma di somma di termini 1/( 2^n ), con n=1,2,3,4, ovvero:
1/10 = a/2 + b/4 + c/8 + d/16 + …
quanto valgono a, b, c, d ecc?
vediamo …
![Page 105: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/105.jpg)
105come si scrive 1/10 (decimale) in base due? 0,110 = 0,abcde...2
dalla definizione, per la prime cifre della frazione: 1) moltiplico la equazione di sopra per due, e ottengo(ricorda: moltiplicare per la base 2 significa spostarela virgola binaria di una posizione a destra) 0,2 = a,bcde devono essere separatamente uguali parte intera qui zero, e quindi a=0, e la parte fratta, e quindiresta: 0,2 = 0,bcde 2) ripeto per la parte fratta residua: moltiplico perdue e ho: 0,4 = b,cde devono essere separatamente uguali parte intera quindi b=0, e la parte fratta: 0,4 = 0,cde
![Page 106: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/106.jpg)
106 0,110 = 0,abcde...2
per la prime cinque cifre della frazione: 1) moltiplico la equazione di sopra per due, e ottengo 0,2 = a,bcde separatamente uguali parte intera quindi a=0, e parte fratta, e quindi resta 0,2 = 0,bcde 2) ripeto per la parte fratta residua: moltiplico perdue e ho: 0,4 = b,cde devono essere separatamente uguali parte intera quindi b=0, e la parte fratta: resta 0,4 = 0,cde3) 0,4*2=0,8 c=0, resta 0,8 = 0,def..4) 0,8*2=1,6 d=1, resta 0,6 = 0,ef..5) 0,6*2=1,2 e=1, resta 0,2 = 0,f...
quindi le prime cinque cifre sono abcde = 000110,110 = 0,a bcde = 0,0 00112 rimane da calcolare 0,2 = 0,fghi che e' la stessa situazione di 0,2 = a,bcde
![Page 107: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/107.jpg)
107quindi 1/10 (decimale) in base due con moltiplicazioni per due ripetute: 0,1= 0,abcdefghi...
1) 0,1*2=0,2 a=0, resta 0,2= 0,bcdefghi 2) 0,2*2=0,4 b=0, resta 0,4= 0,cdefghi3) 0,4*2=0,8 c=0, resta 0,8= 0,defghi..4) 0,8*2=1,6 d=1, resta 0,6= 0,efghi...5) 0,6*2=1,2 e=1, resta 0,2= 0,fghi...6) 0,2*2=0,4 f=0, resta 0,4= 0,ghij...7) 0,4*2=0,8 g=0, resta 0,8= 0,hijk...8) 0,8*2=1,6 h=1, resta 0,6= 0,ijkl...9) 0,6*2=1,2 i=1, resta 0,2= 0,jklm...
0,110=0,a bcde fghi jklm 0,110=0,0 0011 0011 00112 la sequenza 0011 si ripete all'infinito (frazione periodica), e quindi0,110=0,0 0011 0011 0011 0011 0011 0011 ..2
![Page 108: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/108.jpg)
108come si scrive 1/10 (decimale) in base due?
abbiamo visto come si ricava 0,1 = 0,abcdefghi...
0,110= 0,0 0011 0011 0011 0011 0011 00112
con 5 addendi (approssimazione di 1/10 con 5 bit):
0.1=1/10 (base10) = 0/2 + 0/4 + 0/8 + 1/16 + 1/32 + trascuto i termini seguenti + 0/64+0/128 + 1/256 + 1/512 + 0/1024 + 0/2048 + 1/4096+..e quindi 0/1010 = 0,000112 (approssimazione a 5 cifre) ->
0,000112 = 0,0625 + 0,03125 + 0,00390625 + 0,001953125 + + 0,00024414062 = 0,0998535...10 che e' DIVERSO da 0,1 !
![Page 109: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/109.jpg)
109come si scrive 1/10 (decimale) in base due?
passando da base 10 a base 2 la frazione 0,1 (1/10 in base 10) diventa una frazione periodica ovvero con infinite cifre,
0,110= 0,0 0011 0011 0011 0011 0011 00112
0.1=1/10 (base10) = 1/16 + 1/32 + 1/256 + 1/512 + 1/4096+..e quindi con 12 cifre binarie della frazione (5 addendi) :
0,000110011001 = 0,0625 + 0,03125 + 0,00390625 + 0,001953125 + 0,00024414062 = 0,099853516 ... non e' 0,110 !
.. e in generale con un numero limitato (es.24 cifre binarie)ottengo una rappresentazione APPROSSIMATA di 0,1 Si noti che 1/10 = 0,1 in base 10 NON e' rappresentabile esattamente in base due con un numero finito di cifre, (si DEVE fare un troncamento -> in ogni caso ho un errore !! )
![Page 110: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/110.jpg)
110frazioni
Anche la trasformazione opposta, da base generica in base dieci, si basa sulla definizione:
es per base 2: dato 0,1011 in base due,
0,1011 = 1/2 + 0/4 + 1/8 + 1/16 ... in base 10, quindi = 0,5 + 0,0 +0,125 + 0,0625 = = 0,6875 in base 10
![Page 111: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/111.jpg)
111 frazionies per base 16
ricordiamo: ogni cifra esadecimale usa 4 bit;
il numero di bit usati per le potenze di 16: 1)1016 = 1610 = 16^1 ......... 42)10016 = 25610 = 16^2 ......... 83)100016 = 409610 = 16^3 ...... 124) 65 536 = 16^4 ........ 165) 1048 576, ..... 20 (un mega)6) 16 777 216, ..... 247) 268 435 456, ... 288) 4 294 967 296, ... 32 (4 giga) ...per scrivere un valore di 4G devo usare 32 bit (per avere un indirizzo di 4G devo usare 32 bit; ritorneremo su questo in HW
![Page 112: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/112.jpg)
112frazioni
es 0,5A5116 (4 cifre esadecimali = 16 bit)
= 5/1610 + 10/25610 + 5/409610 + 1/6553610
= 0,312510 + 0,039062510 + 0,001220703110 + 0,000015258789..
= 0,35278320312.. 10
(qui, conversione da base 16 a base 10, il numero di cifre in base 10 e' finito o no? ;-)
![Page 113: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/113.jpg)
113frazioni
quando si converte una frazione con un n umero di cifre limitato da base generica a base dieci, il calcolo da fare e' la somma di termini del tipo k/ ( b ^ n )dove 1/b^n in genere NON e' rappresentabile con un numero di cifre finito in base 10, es. banale: 1/3 = 0,33333.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MA per le basi 2,4,8,16, eccetera 1/(b^n) ( con b 2 oppure 4 oppure 8 ecc )e' sempre rappresentabile esattamente con un numero di cifre finito ... basti pensare alla sequenza 0,5 0,25 0,125 0,0625 0,03125 ecc
![Page 114: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/114.jpg)
114frazioni
nota:una frazione con un numero fisso di cifre in binario si converte sempre in una frazione in decimale con un numero di cifre limitato, perche' 1/(2^k) ovvero ½, ¼, 1/8, 1/16, 1/32 ecc hanno un numero di cifre decimali limitato:1/2 0,5 1/128 0,00781251/4 0,25 1/256 0,003906251/8 0,125 1/512 0,0019531251/16 0,0625 1/1024 0,00097656251/32 0,03125 1/2048 0,000488281251/64 0,015625 1/4096 0,000244140625 1/n 0,000..abcd..gh25
![Page 115: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/115.jpg)
115limiti
rappresentazione dei numeri
NEL calcolatore:
i limiti dei formati standard (fissi)
![Page 116: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/116.jpg)
116limiti della codifica nel calcolatorein un calcolatore i numeri sono codificati in binario con un numero fisso di bit (una potenza di 2: 8, 16, 32, 64, 96) - e solo un numero limitato di interi e' rappresentabile.
Ad esempio, gli interi sono rappresentati con (*)
8 bit, da 0 a 255 oppure da -128 a +127 (in C: short int) (+)
16 bit da 0 a 65 535 oppure da -32 768 a 32 767 (in C: int) 32 bit, da 0 a 4 294 967 295 oppure da -2G a + 2G, (in C: long int) 64 bit, long long int 80 bit ... ecc________________________________________________________________________________________________
(*) 4 bit: 0..15; 8 bit: 0..255; 10 bit: 0..1023; 12 bit: 0..4095,.. (+) int, short int = nomi di tipi di variabili nel linguaggio di programmazione C
![Page 117: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/117.jpg)
117limiti della codifica nel calcolatorecon 4 bit, sono rappresentabili 16 numeri senza segno:
00 00 =0 01 00 =4 10 00 =8 11 00=1200 01 =1 01 01 =5 10 01 =9 11 01=1300 10 =2 01 10 =6 10 10 =10 11 10=1400 11 =3 01 11 =7 10 11 =11 11 11=15
e i numeri da 16 in poi NON sono piu' rappresentabili.
se uso sempre 4 bit, un'operazione aritmetica puo' dare un risultato non rappresentabile con tale formato:
1010 ovvero 10 + 111 +7 ---------- --------
10001 17
il risultato esce dall' insieme dei numeri rappresentabili, -> errore di troncamento o traboccamento = "overflow"
![Page 118: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/118.jpg)
118limiti della codifica nel calcolatore
Analogamente (o peggio) per le frazioni:
ricordiamo solo il numero 1/1010, cioe'
0,110= 0,0 0011 0011 0011 0011 0011 0011...2
0,1=1/10 (base10) = 1/16 + 1/32 + 1/256 + 1/512 + 1/4096+..e quindi con 12 cifre binarie dopo la virgola ( 5 addendi )0,0001 1001 1001 = 0,0625 + 0,03125 + 0,00390625 + + 0,001953125 + 0,00024414062 = 0,099853516 che e' diverso dal dato 0,1 !!
con formato fisso di 8 bit la rappresentazione di 0,1 diventa:
0,0001 1001 = 1/16 + 1/32 + 1/256 = 0,0625+ 0,03125+ 0,00390625 = 0,09765625 che e' anora peggio (piu' diverso da 0,1) !
![Page 119: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/119.jpg)
119
rappresentazione di
numeri con segno
![Page 120: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/120.jpg)
120RAPPRESENTAZIONE DI NUMERI CON SEGNOcon 3 bit rappresento 8 oggetti diversi, (ad esempio con 3 bit posso contare fino a 7, quindi rappresento otto numeri da 0 a 9);
finora abbiamo visto la codifica per numeri senza segno,
ma posso rappresentare con gli stessi codici anche numeri negativi,
di solito si associa la meta' dei codici ai numeri positivi, emeta' dei codici ai numeri negativi:
ad esempio con 2 bit ho: 00 = 0 01 = 1 10 = 2 11 = 3
oppure 00 = 0 01 = 1 10 = -1 11 = -1
![Page 121: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/121.jpg)
121RAPPRESENTAZIONE DI NUMERI CON SEGNOcon 3 bit rappresento 8 oggetti diversi, (es.otto numeri); posso rappresentare con gli stessi codici anche numeri negativi, (di solito meta' codici per positivi, meta' per negativi), come in figura:
000 0001 1010 2011 3100 4101 5110 6111 7senza segno
000 -4001 -3010 -2011 -1100 0101 1110 2111 3con segno/a
000 0001 1010 -1011 2100 -2101 3110 -3111 4con segno/b
000 -1001 -2010 -3011 -4100 0101 1110 2111 3con segno/c
... in quanti modi posso associare 8 simboli a 8 codifiche?
![Page 122: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/122.jpg)
122... in quanti modi posso associare 8 simboli a 8 codifiche?
quante codifiche binarie diverse posso avere per 8 simboli ? dati 8 simboli ( a, b, c, d, e, f, g, h ), dati 8 codici binari a 3 bit, es. ( 111 110 101 100 011 010 001 000 ) posso associare al primo simbolo a uno qualunque dei 8 codici a 3 bit, ad es. a = 011 (A) (8 scelte possibili);al secondo simbolo posso associare uno qualunque dei 7 codici rimasti, ad es. b = 110 (B) in totale per i primi due simboli posso fare 8*7 scelte per le due codifiche:
a, b, c, d, e, f, g, h
111 110 101 100 011 010 001 000
(A) (B)
![Page 123: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/123.jpg)
123... in quanti modi posso associare 8 simboli a 8 codifiche?
dati 8 simboli ( a, b, c, d, e, f, g, h ), dati 8 codici binari a 3 bit, ( 111 110 101 100 011 010 001 000 ) posso associare al primo simbolo "a" uno qualunque dei 8 codici a 3 bit, ad es. a = 011 (8 scelte possibili);al secondo simbolo "b" posso associare uno qualunque dei 7 codici rimasti, ad es. b = 110, (7 scelte); al terzo simbolo "c" posso associare un codice dei 6 codici rimasti, es. c= 000 (6 scelte) poi 5 scelte per il quarto, 4 scelte per il quinto simbolo,
in totale per 8 simboli posso fare 8*7*6*5*4*3*2*1 scelte;
per 8 simboli con un codice a 3 bit posso fare 8 ! (8 fattoriale) scelte, cioe' 40320 scelte.
![Page 124: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/124.jpg)
124 Codifica numeri interi con segno
Dati 8 codici binari posso scegliere 8! modi per usarli nella rappresentazione di 8 numeri interi con segno, meta' positivi e meta' negativi (qui 5 dei 8! possibili codici diversi )
codice num1 num2 num3 num4 num5 …
0 000 -3 -4 3 0 0 1 001 -2 -3 2 1 -0 2 010 -1 -2 1 2 1 3 011 -0 -1 0 3 -1 4 100 +1 0 -1 -3 2 5 101 +2 1 -2 -2 -3 6 110 +3 2 -3 -1 3 7 111 +4 3 -4 -0 -4
![Page 125: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/125.jpg)
125cont. RAPPRESENTAZIONE DI NUMERI CON SEGNO
per rappresentare numeri negativi con n bit (ad es. 4 bit), uso delle regole convenzionali di rappresentazione;
caso piu' semplice: un bit per il segno, il resto rimane uguale;2 possibilita’: rappresento segno meno con bit 1 o con bit 0:
000 0 +0 -0001 1 +1 -1010 2 +2 -2011 3 +3 -3100 4 -0 +0101 5 -1 +1110 6 -2 +2111 7 -3 +3
RAPPRESENTAZIONE : GRANDEZZA CON UN BIT PER IL SEGNO
questa codifica non e’ usata ;-)
vediamo ora le 3 codifiche piu’ usate per i numeri con segno: complemento a uno, complemento a due, con eccesso di 2^(k-1)
![Page 126: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/126.jpg)
126
0 000 +0 1 001 +1 2 010 +2 3 011 +3 4 100 -3 5 101 -2 <-- 6 110 -1 7 111 -0
in complemento a uno la codifica di un numero negativo si ottiene scambiando uni e zeri, rango per rango, ovvero facendo il complemento bit per bit:codice di +2 = 0 10 -->> cod.di -2 = 1 01dove il primo bit e’ il bit del segno, gli altri codificano il num
numeri con segno : il complemento a uno
RAPPRESENTAZIONEDI NUMERI CON SEGNO IN COMPLEMENTO A UNO QUI CON 3 BIT + 1 BIT SEGNO
![Page 127: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/127.jpg)
127numeri con segno : il complemento a uno
in complemento a uno la codifica di un numero negativo si ottiene scambiando uni e zeri, rango per rango, ovvero facendo il complemento bit per bit:
il primo bit e’ il bit del segno, gli altri codificano il numero
0 000 +0 1 001 +1 2 010 +2 3 011 +3 4 100 -3 5 101 -2 <-- 6 110 -1 7 111 -0
codice +2 = 0 10 codice -2 = 1 01 codice +3 = 0 11codice -3 = 1 00
![Page 128: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/128.jpg)
128numeri con segno : il complemento a uno in complemento a uno: -x e' rappresentato con il complemento di x bit per bit, cioe' da: (2 n -1) -x (*)
-5 in un codice a 4 bit in complemento a uno e’ dato da: (24 -1) -x = (16-1 -5) = (15 - 5)10 = (10000 - 1)2 - 1012 = 1111 - 0101 = 1010 = complemento bit per bit di 0101
-3 in un codice a 4 bit in complemento a uno e’ dato da: (24-1) - x = (10000 -1 ) -3 = 1111 - 0011 = 1100 da cui la tabella gia’ vista..
(*) nota: se uso n bit, 2 n non e’ rappresentabile ad es. se uso 3 bit, 2 3 = 8 = 1000 non e’ rappresentabile; il numero piu’ grande rappresentabile con n bit e’ 2n -1, che e' il codice con tutti i bit messi a 1 ad es. con 3 bit e’ 111 = 1000 - 1 = 8 - 1=7 )
![Page 129: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/129.jpg)
129numeri con segno : il complemento a uno
complemento a uno: -x e' rappresentato con il compl. di x bit per bit, cioe' -x e’ rappresentato da (2 n -1) - x = 11..11 - x es -5 con 4 bit in complemento a uno: (2 4 -1) -x = (10000 - 1) - 5 = 1111 - 0101 = 1010
0 0 000 +0 | 1 111 -0 1 0 001 +1 | 1 110 -1 2 0 010 +2 | 1 101 -2 3 0 011 +3 | 1 100 -3 4 0 100 +4 | 1 011 -4 5 0 101 +5 | 1 010 -5 6 0 110 +6 | 1 001 -6 7 0 111 +7 | 1 000 -7
si noti: la codifica e’ simmetrica, i numeri rappresentabili con 4 bit vanno da -7 a +7, vi sono due codifiche dello zero!
![Page 130: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/130.jpg)
130numeri con segno : il complemento a uno
con 4 bit (numero bit n=4) ho: 0 0 000 +0 | 1 111 -0 1 0 001 +1 | 1 110 -1 ... .. | ... .. 6 0 110 +6 | 1 001 -6 7 0 111 +7 | 1 000 -7[n = 4, n-1 = 3 bit per il dato -> per i positivi da 0 a 7, per i negativi, da - 0 a - 7] in generale in complemento a uno con n bit rappresento i numeri da - (2n-1-1 ) a + (2n-1-1 )
il num. piu’ positivo x ha il codice (2n-1-1 ) = 23 -1 = 1000-1 = 0111 = 7,
il numero piu’ negativo e’ rappresentato (ha il codice) da ( 2n -1 - x) = ( (2n -1) - (2n-1 - 1 )) = (2n-1 +2n-1 -1) - (2n-1 -1 )) = = 2n-1 + 2n-1 -1 - 2n-1 + 1 = 2n-1 -1 +1 = = 2n-1 = ( se n=4) = 8 = 1000 = rappresentazione di -7...
![Page 131: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/131.jpg)
131numeri con segno : il complemento a uno il codice (complemento a uno) di un dato negativo e' dato dai bit del dato (positivo), complementati uno per uno:
0110 sei, 1001 meno sei,
0101 cinque, 1010 meno cinque
questo codice permette di fare l' ARITMETICA di numeri con segno in modo semplice : 3 - 4 = -1 in codice binario con complemento a uno?
la rappresentazione in complemento a uno e' consistente con le operazioni di aritmetica, ovvero posso sommare i codici di un numero positivo e di un numero negativo e ottenere il codice corretto del risultato.
vi sono tre casi da considerare a seconda dei riporti riguardo il bit del segno (nessuno, uno, due riporti) ... vediamo ...
![Page 132: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/132.jpg)
132 aritmetica in complemento a uno la rappresentazione in complemento a uno e' consistente con le opera- zioni di aritmetica: si sommano i codici dei numeri con segno e e si ottiene il codice corretto del risultato:
due casi senza riporto al- o dal- bit del segno:
1) caso di risultato positivo 3+2 = +5 0 0 1 1 3
0 0 1 0 2 -------- -- 0 1 0 1 5
-------------------------------------------------------------------------------------------------------------
2) caso di risultato negativo 3-4 = -1
0 0 1 1 3 1 0 1 1 -4
3+ [(24-1)-4]= (24-1)-1 = -------- --che e' la codifica di -1 1 1 1 0 -1
![Page 133: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/133.jpg)
133numeri con segno : il complemento a unoaritmetica numeri con segno, caso con 2 riporti al/dal segno:
3) caso di risultato positivo 7 - 4 = 3
nota: codice di -4 = 0 1 1 1 7 24-1 –4 = 1111-0100 1 0 1 1 -4Quindi (24-1) + 7-4 = ------- --24 -1 + 3 = 1 0 0 1 0 224 + 2 =>c'e' un riporto a sini- + 1 +1stra, dal bit del segno, ------- --il riporto si somma a destra, 1 1 3ultimo rango a destra, con la correzione otteniamo 1+2 = 3
nota che c'e' un riporto anche NEL bit del segno: vi sono due riporti !
![Page 134: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/134.jpg)
134
0 1 0 1 5 1 1 0 0 -3 ------- -- 1 0 0 0 1 +1 1 +1 -------- -- 1 0 2
SOMMA DI NUMERI IN COMPLEMENTO A UNO:se vi sono due riporti, uno al bit del segno e uno dal bit del segno, il riporto da sinistra (dal segno) si somma a destra
numeri con segno : il complemento a uno 3) ancora: caso di risultato positivo 5 - 3 = 2
![Page 135: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/135.jpg)
135
se il risultato 0 1 0 0 4e' negativo, e non 1 0 0 1 -6vi sono riporti ne' ------- --nel bit del segno, 1 1 0 1 -2ne' dal bit del segno,
allora otteniamo il risultato direttamente dalla somma dei due codici
numeri con segno : il complemento a uno 4) caso di risultato negativo, senza riporti: 4-6=-2
![Page 136: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/136.jpg)
1365) caso di risultato negativo, due riporti: -1 -5 = -6
-1-5 = codici di –1 e –5in complemento a uno:[(24-1)-1]+[(24-1)-5]= 1 1 1 0 -1 1 0 1 0 -5 [24+(24-1)-7 ] = ------- -- 1 1 0 0 0 -7il riporto da sinistra +1 +1si somma a destra --------- -- 1 0 0 1 -6
![Page 137: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/137.jpg)
137numeri con segno : il complemento a uno
nella somma di due numeri con segno codificati in complemento a uno si hanno le regole seguenti (regolerealizzate dai circuiti elettronici dell'unita' aritmetica)
* nessun riporto nel / dal bit del segno ok, niente da aggiustare
* due riporti (nel/dal bit del segno) ok, e il riporto fuori del segno a sinistra si somma adestra (rango delle unita')
e se c'e' un solo riporto (dal bit del segno oppure nel bit del segno) in tal caso il risultato NON e' corretto, c'e' un errore di trabboccamento (overflow)
vediamo questi casi di risultato errato ...
![Page 138: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/138.jpg)
138numeri con segno : il complemento a uno
7) caso di overflow,dove il risultato NON e’rappresentabile(un solo riporto al segno)
5 0 1 0 1 risultato si legge 5+6= -4 6 0 1 1 0 [[un solo riporto verso il -- ------- bit segno -> errore di 11 1 0 1 1 trabboccamento->overflow]]
8) caso di overflow -5 1 0 1 0 [[un solo riporto dal bit -6 1 0 0 1 del segno -> errore --- -------- di overflow ]] -11 1 0 0 1 1 si ottiene: -5-6 = 3
![Page 139: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/139.jpg)
139numeri con segno, complemento a uno:
riassumendo, la codifica dei numeri con segno in complemento a uno (num.negativi rappresentati dal codice dei numeri positivi complementando i bit uno a uno) e' un codice consistente con le operazioni aritmetiche, e e' un codice simmetrico rispetto lo zero:
+6 codice 0 110 -6 codice 1 001 due zeri: 0 000 -0 codice 1 000
limiti simmetrici, per positivi e per negativi, da 0 a (2^(n-1)) -1 , con n=4 bit il limite e' (2^3-1) cioe':
+7 0 111 -7 codice 1 111
![Page 140: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/140.jpg)
140numeri con segno, complemento a due:
una codifica oggi piu' usata:
numeri con segno in complemento a due:
e' simile alla codifica in complemento a uno, ma con i codici spostati di una posizione e con un solo codice per lo zero;
la rappresentazione di un numero negativo in complemento a due e’ data dal complemento bit per bit, e poi sommando uno:
+6 codice di +6 e' 0 110, -6 codice di -6 e' 1 001 +1 = 1 010
![Page 141: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/141.jpg)
141numeri con segno, complemento a due:un primo esempio con 3 bit per il codice con segno (un bit per il segno, due bit per il dato)
codifica in compl.a uno | CODICE IN COMPLEM.A DUE:
0 000 +0 | 000 +0 1 001 +1 | 001 +1 2 010 +2 | 010 +2 <-- 3 011 +3 | 011 +3 4 100 -3 | 100 -4 5 101 -2 | 101 -3 6 110 -1 | 110 -2 <-- 7 111 -0 | 111 -1
la rappresentaz.e di un num. negativo in complemento a due e’ data dal complemento bit per bit, e poi sommando uno:
+2 = 0 10 -> cod.di -2 = 1 01 +1 = 1 10 = -2 il primo bit e’ il bit del segno, gli altri codificano il numero+3 = 0 11 -> cod.di -3 = 1 00 +1 = 1 01 = -3
![Page 142: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/142.jpg)
142RAPPRESENTAZIONE IN COMPLEMENTO A DUE
rappresento -x in complemento a due con (2 n - x )(*)
ad es: -5 e' rappresentato da -(24-5) = (10000 - 101) = ((10000 -1) +1 -101 ) = (1111 - 101 +1) = 1010 + 1 = 1011
un dato negativo in complemento a due si rappresenta con il codice: { [complemento bit per bit del dato] + uno }.
-5 codice ( complemento a uno: +5 e' 0101 quindi –5 e' 1010 ) codice in complemento a due: 1010+1 = 1 011_____
(*) codice di –x in complemento a uno: ( 2 n -1 ) - x
![Page 143: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/143.jpg)
143RAPPRESENTAZIONE IN COMPLEMENTO A DUE
comlem. a due: -x e’ rappresentato da 2 n -x = 100..00 - x -5 con 4 bit 2 4 -x = 10000 - 0101 = 1011
0 0 000 +0 | 1 111 -1 1 0 001 +1 | 1 110 -2 2 0 010 +2 | 1 101 -3 3 0 011 +3 | 1 100 -4 4 0 100 +4 | 1 011 -5 5 0 101 +5 | 1 010 -6 6 0 110 +6 | 1 001 -7 7 0 111 +7 | 1 000 -8
si noti: la codifica non e’ simmetrica, i num. rappresentabili vanno da -8 a +7, e c'e' una codifica dello zero!
![Page 144: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/144.jpg)
144RAPPRESENTAZIONE IN COMPLEMENTO A DUE
ripetendo ...
caso rappresentazione di numeri negativi in codifica complemento a due : -x e’ rappresentato da 2 n -x
i numeri rappresentabili con n bit vanno da..a :
-2 n-1 ... + 2 n-1 -1 (ad es. se n=4, da -8 a +7)
si noti che l' intervallo NON e' simmetrico!
e che c'e' un unico codice per lo zero.
![Page 145: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/145.jpg)
145RAPPRESENTAZIONE IN COMPLEMENTO A DUE
complemento a due :x = +10 codice 001 010,x = -10 codice? -x rappresentato da 2 n -x = 2 n -1 -x+1 .. qui n=6, = 1000 000 - 1 –001010 + 1 = 111111 – 001010 + 1 = compl.bit per bit + 1 = 110 110
con 6 bit si rappresentano i numeri da -32 a +31:-2 n-1 = -2 5 = - 32 = 1 00000 +2 n-1 -1= 25 -1 = +31 = 0 11111
31 0 11111 -32 1 0000030 0 11110 -31 1 0000129 0 11101 -30 1 0001028 0 11100 -29 1 00011...17 0 10001 -18 1 0111016 0 10000 -17 1 0111115 0 01111 -16 1 10000...10 0 01010 -10 1 10110... 2 0 00010 -3 1 11101 1 0 00001 -2 1 11110 0 0 00000 -1 1 11111
codice a 6 bit, 5 bit dato (numeri da 0 a 31), 1 bit segno:
![Page 146: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/146.jpg)
146numeri negativi: codifica in complemento a due
-3 1 1 0 1 ovvero: (2^4-3)+2= 2^4-1 +2 0 0 1 0 che rappresenta -1 -- ------- ... per definizione -1 1 1 1 1------------------------------------------------------------------
-2 1 1 1 0 ovvero (2^4-2)+4 = 2^4+2, +4 0 1 0 0 ignoro il riporto a sinist -- ------- che e’ dato da 2^4 +2 1 0 0 1 0 [[n.b.: due riporti, uno dal e uno nel bit segno]]------------------------------------------------------------------
-3 1 1 0 1 (2^4-3)+(2^4-2)=(2^4-5)+2^4 -2 1 1 1 0 il riporto (2^4) ignorato- -- ------- [[n.b.: due riporti, uno -5 1 1 0 1 1 dal e uno nel bit segno]] anche qui il risult. e' ok
![Page 147: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/147.jpg)
147numeri negativi: codifica in complemento a due
quando il risultato NON e’ rappresentabile:
5 0 1 0 1 6 0 1 1 0 [[un solo riporto verso il -- ------- bit segno -> errore di 11 1 0 1 1 trabboccamento->overflow]]
-5 1 0 1 1 [[un solo riporto dal bit -6 1 0 1 0 del segno -> errore --- -------- di overflow ]] -11 1 0 1 0 1
![Page 148: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/148.jpg)
148diversi modi di rappresentare numeri con segno:a b c d0 000 = 0 (a = segno, b = cifre dato) 0 011 = 3 c = codifica senza segno0 100 = 4 d = codifica in complemento a uno0 101 = 5 e = codifica in comlemento a due0 110 = 6 f = codifica in grandezza con segno0 111 = 7 <-- fino qui(segno +)come noto,poi:
a b c d e f1 000 = 8 -7 -8 -01 001 = 9 -6 -7 -11 010 = 10 -5 -6 -21 011 = 11 -4 -5 -31 100 = 12 -3 -4 -41 101 = 13 -2 -3 -51 110 = 14 -1 -2 -61 111 = 15 -0 -1 -7
codifica complemento a due (colonna e) -5 si scrive: 1011in compl. a uno (col. d) -5 si scrive: 1010 in grandezza con segno (colonna f) -5 si scrive: 1101
![Page 149: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/149.jpg)
149cont. RAPPRESENTAZIONE DI NUMERI CON SEGNO
abbiamo visto le due codifiche piu’ usate per rappresentare i numeri con segno,
codifica in complemento a uno codifica in complemento a due
vediamo ora due codifiche derivate da queste,
“rappresentazione in eccesso di k”
usate nella rappresentazione dei numeri in virgola mobile(tipo: 3,77 E-52 )per la parte dell’esponente...
![Page 150: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/150.jpg)
150ancora 2 modi di rappresent. numeri con segno:
0 000 = 0 0 -7 -8 colonna:0 001 = 1 1 -6 -7 a= segno,0 010 = 2 2 -5 -6 b= bit per il dato,0 011 = 3 3 -4 -5 c = decimale,0 100 = 4 4 -3 -4 d = complemento a due0 101 = 5 5 -2 -3 e = rappresentazione0 110 = 6 6 -1 -2 in eccesso di 2^N0 111 = 7 7 -0 -1 con complemento a uno1 000 = 8 -8 +0 +01 001 = 9 -7 +1 +1 f = rappresentazione1 010 = 10 -6 +2 +2 in eccesso di 2^N1 011 = 11 -5 +3 +3 con complemento a due1 100 = 12 -4 +4 +4 num.positivi segno 11 101 = 13 -3 +5 +5 nota che i numeri 1 110 = 14 -2 +6 +6 negativi hanno il1 111 = 15 -1 +7 +7 bit del segno zeroa b c d e f
![Page 151: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/151.jpg)
151rappresentaz. di numeri con segno con eccesso di k
codifica di numeri positivi e negativi con eccesso di 2n-1
ogni dato x (pos.o neg) e’ codificato con: 2(n-1) + x (con n = numero bit della rappresentaz.)ad es. per codificare 5 con n = 4 bit abbiamo:
5 -> 2(n-1) + 5 = 23 + 5 = 1000 + 101 = 1101
per rappresentare un numero negativo? -> uso l’aritmetica con complemento; devo decidere quale rappresentazione uso per la sottrazione, cioe’ quale codice per il -x; es:
-5 -> 23 - 5 = 1000 + [codice di -5] ->
ora, se rappresento -5 in complemento a uno allora:
2^3 + (-5) = 1000+1010 = 0010 (colonna d)(ignoro il riporto dal rango del segno!)
![Page 152: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/152.jpg)
152codifica num.negativi con eccesso di kcon n bit rappresento x con 2(n-1) + x
con 4 bit ho i codici di +5 e di –5:
5 -> 2(n-1) + 5 = 23 + 5 = 1000 + 101 = 1101
-5 -> 23 - 5 = 1000 + codice di -5 ->
-5 codice con eccesso di 23, complem.a uno:
2^3 + (-5)= 1000 + 1010 = 0010 (colonna d)
-5 codice eccesso di 23, in complem.a due:
2^3 + (-5)= 1000 + 1011 = 0011 (colonna e)
il primo bit e'sempre il segno del dato; con la codifica in eccesso di k il segno meno corrisp. al bit segno = 0
![Page 153: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/153.jpg)
153
riassumiamo la rappresentazione di numeri con segno -
le 4 codifiche,caso di codice a 4 bit
(1 bit per segno, 4 bit per dato)
Riassunto 4 codifiche numeri interi con segno
![Page 154: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/154.jpg)
1540 000 = 0 0 0 -7 -8 c= codifica senza 0 001 = 1 1 1 -6 -7 segno0 010 = 2 2 2 -5 -6 d= codice in complem0 011 = 3 3 3 -4 -5 a uno (due zeri!)0 100 = 4 4 4 -3 -4 la piu' usata:0 101 = 5 5 5 -2 -3 e= codifica in com-0 110 = 6 6 6 -1 -2 plemento a due0 111 = 7 7 7 -0 -1 (non simmetrica)
1 000 = 8 -7 -8 +0 +01 001 = 9 -6 -7 +1 +1 f= rappresentazione1 010 = 10 -5 -6 +2 +2 in eccesso di 2N
1 011 = 11 -4 -5 +3 +3 con compl. a uno1 100 = 12 -3 -4 +4 +4 g= rappresentazione1 101 = 13 -2 -3 +5 +5 in eccesso di 2N,1 110 = 14 -1 -2 +6 +6 con complem.a due1 111 = 15 -0 -1 +7 +7 codifiche f,g hanno ia b c d e f g num.negat.con segno 0
![Page 155: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/155.jpg)
155esercizi aritmetica con segno:
1) esercizio: calcolare la somma :
+3 -3
in due versioni, complemento a uno complemento a due
usare una codifica a 4 bit,
![Page 156: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/156.jpg)
156
in complem. a uno
+3 -> 0 0 1 1 0 0 1 1-3 -> 1 1 0 0 1 1 0 0 ----------ottengo il codice di -0 1 1 1 1
(ricorda: il riporto da sinistra si somma a destra )
complemento a due: 3 0 0 1 1 -3 1 1 0 1 ------------ (due riporti - 1 0 0 0 0 ignoro riporti)
esercizi aritmetica con segno:
![Page 157: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/157.jpg)
157 esercizi aritmetica in complemento a uno
es.2) calcolare in complemento a uno con codice a 4 bit:
6 -4
5 - 6
-2 -3
![Page 158: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/158.jpg)
158 esercizi aritmetica in complemento a uno
calcolare 6 - 4 (complemento a uno, codice a 4 bit) : codice +6 0 110, codice +4 0 100, -4 1 011, quindi
+6 0 110somma : -4 1 011 ----- 10 001 risultato - ma vi sonodue riporti al/dal segno, si somma ilriporto: 0 001 +1 ----- 0 010ottengo il codice di +2
![Page 159: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/159.jpg)
159 esercizi aritmetica in complemento a uno
calcolare 5 - 6 (complemento a uno, codice a 4 bit):
codice di +5 0 101, codice di +6 0 110, di -6 1 001,quindi
+5 0 101somma : -6 1 001 ----- -1 1 110
nessun riporto al/dal segno, ho direttamente il risultato meno uno
![Page 160: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/160.jpg)
160 esercizi aritmetica in complemento a uno
calcolare -2 -3 (complemento a uno, codice a 4 bit)
codice di +2 0 010, di -2 1 101 codice di +3 0 011, di -3 1 100, quindi
-2 1 101somma : -3 1 100 ----- 11 001
due riporti al/dal segno, sommo ilriporto: 1 001 +1 ----- 1 010 risultato codice di -5
![Page 161: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/161.jpg)
161 esercizi aritmetica in complemento a uno
3) stessi esercizi, ma in complemento a due;
6 -4 5 - 6 -2 -3
ricorda per avere il codice di -3 in complemento a 2 si fa:
parto dal codice di +3, 0 011, il complemento a uno e’ 1 100, a questo poi sommo uno, e ottengo 1 101 che e' il codice di -3 in complemento a due;
(vale anche per lo zero: per avere il codice di -0 si fa: +0 = 0 000, complemento a 1 e' 1 111, 1111 piu' 1 -> ottengo 0 000 )
![Page 162: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/162.jpg)
162 esercizi aritmetica in complemento a due, codice a 4 bit 6 -4 codice di +6 0 110 codice di +4 0 100, -4: 1011 + 1 = 1 100
somma: +6 0 110 -4 1 100 ----- +2 10 010
risultato 0 010
(il doppio riporto in e dal bit del segno e' ignorato)
![Page 163: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/163.jpg)
163 2) esercizi aritmetica in complemento a due con codice a 4 bit
5 - 6codice di 5 0 101codice +6 0 110,di -6: 1 001+1=1010somma: +5 0 101 -6 1 010 --------- -1 1 111
(nota:1=0001, compl.a 1 di -1 e' 1110, poi +1 ottengo 1111)
-2 -3codice di 2 0 010,-2: 1101+1= 1 110codice di 3 0 011,-3: 1100+1= 1 101somma: -2 1 110 -3 1 101 --------- -5 11 011ignoro doppio riporto(5=0101, -5=1010+1=1011=risultato sopra)
![Page 164: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/164.jpg)
164codifiche di -2, -6, -7, -13 con una rappresentazione di 5 bit
4) esercizio: calcolare le codifiche dei numeri:
-2, -7, -9, -13
in complemento a due,
con rappresentazione di 5 bit (1 bit segno, 4 bit dato)
![Page 165: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/165.jpg)
165codifiche di -2, -6, -7, -13 con una rappresentazione di 5 bit
3) esercizio: calcolare le codifiche dei numeri: -2, -7, -9, -13 in complemento a due, con rappresentazione di 5 bit (1 bit segno, 4 bit dato)
codice di +2 = 0 0010 codice di -2 = 1 1101 + 1 = 1 1110 codice di +7 = 0 0111, codice di -7 = 1 1000 + 1 = 1 1001 codice di +9 = 0 1001, codice di -9 da 1 0110 + 1 = 1 0111,
codice di +13 = 0 1101, codice di -13 = 1 0010 + 1 = 1 0011,
![Page 166: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/166.jpg)
166 FINE CODIFICHE NUMERI NEGATIVI
FINE CODIFICHE NUMERI NEGATIVI
![Page 167: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/167.jpg)
167floating point = “ float, real, …(*) ”
numeri in virgola mobile -
numeri molto ... grandi numeri molto ... piccoli
----------------------------------------------------------------------------------------------------------------------------
(*) corrisponde ad un tipo standard di molti linguaggi di programmazione
![Page 168: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/168.jpg)
168codifica in virgola mobileRAPPRESENTAZIONE DI NUMERI MOLTO
PICCOLI E MOLTO GRANDI ---IN VIRGOLA MOBILE (FLOATING POINT)
Possiamo scrivere un dato con parte intera e fratta in molti modi diversi:
3,14159265 = 0,314159265 * 101
= 3,14159265 * 100
= 314159265 * 10-8
= 0,0000314159265 * 105 = ( 314159265, -8 ) ecc = 0,314159265 * E+1 <<==
0,314159265 E+1 = forma normalizzata in virgola mobile
![Page 169: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/169.jpg)
169codifica in virgola mobile
0,314159265 E+1 = forma normalizzata in virgola mobile
le varie parti sono codificate separatamente : (qui 10 = la base dell'esponente, e' implicita)
segno/cifre /segno esponente/cifre espon. + ,314159265 + 1in binario: + ,01010000011... + 1ovvero + ,10100000110 + 0
(ricorda: 0,001 * 22 = 0,01 * 21 = 0,1 * 20 = 1 * 2 (-1) = 10 * 2 (-2) = ... 0,314E+1-> 314 = cifre = mantissa E+1 = esponente = caratteristica
![Page 170: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/170.jpg)
170codifica in virgola mobile
+ 0 , 3141592 E + 01
= forma normalizzata in virgola mobile Sono in ogni caso presenti :
il segno del dato +
le cifre del dato (mantissa) = 3141592 = precisione del dato, (nota: la posizione della virgola decimale e' a sinistra della prima cifra non nulla del dato)
il segno dell'esponente +
le cifre dell'esponente (caratteristica) = 01 = ordine di grandezza del dato.
![Page 171: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/171.jpg)
171precisione nella codifica in virgola mobile
+ 0 , 3141592 E + 01
la virgola (decimale o binaria) si assume generalmente a sinistra della prima cifra del dato.
[ricorda: scrittura italiana: 0,314E+1 (“virgola mobile”) -- scrittura anglosassone: 0.314E+1 (“ floating point ”)
Il numero delle cifre del dato (mantissa) determina la precisione della rappresentazione;
definizione:
precisione il numero x piu' di una codifica = piccolo tale che in virgola mobile 1.0 + x <> 1.0
![Page 172: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/172.jpg)
172codifica in virgola mobile
precisione il numero x piu' di una codifica = piccolo tale che in virgola mobile 1.0 + x <> 1.0
ad es. nel caso sopra, assumiamo la codifica con 7 cifre,
allora la precisione e’ data da
+0,000 000 1 E+01 = 1,0E-7
se provo a sommare 1.0 = 1,0E+00 = 0,1 E +01 e +0,000 000 1 E+01 = 1,0E-7
cosa si ottiene?
![Page 173: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/173.jpg)
173codifica in virgola mobile
codifica a 7 cifre, la precisione e’ +0,000 000 1 E+01 = 1,0E-7
provo a sommare 1.0 = 1,0E+00 = 0,1 E +01 e +0,000 000 1 E+01 = 1,0E-7
per sommare, devo avere esponenti uguali, uso il piu'grande:
0,100 00 00 E+01 +0,000 00 01 E+01 -------- ------- 0,100 00 01 E+01
risultato diverso da 1,0E+00, quindi vale appunto che 1.0 + x <> 1.0 ma vediamo con un x piu' piccolo, dove 1.0+x = 1.0 ...
![Page 174: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/174.jpg)
174codifica in virgola mobile
1+x = 1 se x e' piu' piccolo della precisione- 1 e' codificato con: 0,100 00 00 E+01un x < 1.0E-7, ad es. 4.0E-8: 4,000 00 00 E-08
per sommare, devo avere esponenti uguali, uso il piu'grande:
0,100 00 00 E+01 +0,000 00 004 E+01 -------- ------- 0,100 00 004 E+01
risultato con otto cifre per il dato - ma il formato e' fisso: il risultato deve avere 7 cifre! quindi l'ultima cifra viene troncata (arrotondata) e si ottiene: 0,100 00 00 E+01e quindi ottengo il risultato uguale al primo addendo !!
![Page 175: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/175.jpg)
175codifica in virgola mobile
In virgola mobile posso rappresentare numeri molto piccoli o molto grandi utilizzando lo stesso numero di cifre (qui sotto 6 cifre - quattro per il dato, 2 per esponente ) in un formato fisso:
27,53 -> 0,2753 E+02 0,000 000 000 07986 -> 0,7986 E-10 piccolo 12340000 0000 0000 -> 0,1234 E+16 grande
codifico ora i numeri con un ipotetico formato in virgola mobile a 6 cifre decimali, (come sopra 4 per il dato, 2 per l' esponente); i tre dati di sopra codificati si rappresentano :
| + | + | 02 | 2753 | primo dato 27,53| + | - | 10 | 7986 | 2.o dato 0,7986 E-10| + | + | 16 | 1234 | 3.o dato 0,1234E+16
![Page 176: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/176.jpg)
176
27,53 0,2753 E+020,000 000 000 07986 0,7986 E-1012340000 0000 0000 0,1234 E+164 cifre per il dato,2 cifre per l'esponente | + | + | 02 | 2753 | primo dato 27,53| + | - | 10 | 7986 | 2.o dato 0,7986E-10| + | + | 16 | 1234 | 3.o dato 0,1234E+16
il numero piu' grande rappresentabile con tale formato:
| + | + | 99 | 9999 | = 0,9999 * 10^99
il numero piu' piccolo rappresentabile con tale formato,con 4 cifre, normalizzato (prima cifra a sin. e' non zero):| + | - | 99 | 1000 | = 0,1000 * 10^(-99)
il piu' piccolo con 1 cifra sola (non normalizzato) :
| + | - | 99 | 0001 | = 0,0001 * 10^(-99) = 0,1 * 10^(-102)
limiti codifica in virgola mobile
![Page 177: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/177.jpg)
177codifica in virgola mobile
nota - la rappresentazione di un numero in floating point
definisce come si codifica (si scrive) la parte delle cifre (mantissa)e la parte che da' l'ordine di grandezza (esponente, caratteristica)
123,456 si scrivera': 0,123456 E+3 (convenzione: la prima cifra dopo la virgola decimale e' non nulla, la parte intera e' nulla; usata negli es.seguenti)
oppure (convenzione standard corrente, piu' usata) 1,23456 E+3la virgola sta dopo la prima cifra non nulla (che in binario e' sempre 1)
![Page 178: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/178.jpg)
178codifica in virgola mobile - codifica e limiti
seguono esempi in binario su un ipotetico formato a 8 bit:
S Z EE DDDD segno dato segno espon espon dato
1) Per rappresentare il dato 5,0 avremo in binario : 5 = 101,0 * 2^0 (ora normalizzo ) = 0,1010 * 2 ^ 3 =>0 0 11 1010S Z EE DDDD
quindi 00111010 e’ la codifica di 0,101 * 2 ^ 3
2) per rappresentare il dato 0,75 avremo in binario:0,75 = 0,5 + 0,25 = 1/2+1/4 = 0,11 con esponente 0,quindi 0 0 00 1100quindi 00001100 rappresenta 0,11 * 2 ^ 0
![Page 179: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/179.jpg)
179codifica in virgola mobile es 0,125
contin. virgola mobile con codifica a 8 bit
SZEEDDDD (S segno dato, Z segno esponente, EE esponente, DDDD cifre dato)
3) dato 0,125 = 1/8 = 0,001 = 0,001*2^0 ={ S=0, Z=0, EE=00, DDD=001 } poi normalizzo, cioe’ virgola binaria a sinistra della 1.a cifra del dato: = 0,1*2^(-2)(*) codifico l'esponente negativo ad es.in compl. a uno, quindi (z=meno,EE=2) -2 diventa: -2= 111-010 =101, infine il tutto 0,1000*2^(-2) diventa:
0,125 = S E EE DDDD= 0 1 01 1000= 01011000_____________(*) nota: di seguito uso a^b oppure ab per indicare a alla b
![Page 180: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/180.jpg)
180codifica in virgola mobile es con soli 8 bit ...cont. codifica in virgola mobile con 8 bit
S segno, Z segno espon,EE espon., DDDD dato abbiamo visto che 0011 1010 rappresenta 5,0 e che 0,125=1/8=0,0012 si scrive 01011000,
vediamo i numeri piu’piccolo e piu’grande:
il piu'grande
0011 1111 = 0,1111*23 = 8 (circa)
il piu'piccolo
0100 0001 = 0,0001*2-3 = 1,0*2-7 = 1/128
![Page 181: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/181.jpg)
181codifica in virgola mobile es con soli 8 bit ...
i dati con segno meno sono rappresentati complementando tutto, quindi ad es. gli stessi di prima:
+5,0 = 0011 1010, -5,0 = 1100 0101
0,75 = 0000 1100, -0,75 = 1111 0011
0,125 = 0101 1000, -0,125 = 1010 0111
![Page 182: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/182.jpg)
182codifica in virgola mobile: precisione/estensione
date n cifre [es. 10 cifre decimali] per rappresentare un dato in virgola mobile dobbiamo decidere il formato cioe’ dividere le cifre disponibili per le codifiche dei vari pezzi ...
il formato determina l'insieme dei numeri rappresentabili:
* sia per l' estensione dell'intervallo (ordine di grandezza, num. piu' piccolo/ num. piu' grande)
* sia per la precisione (cifre significative)
nota: se uso piu' cifre per l'esponente -> posso rappresentare numeri piu' grandi / piccoli, -> ma - diminuisce la precisione (restano meno cifre per il dato)
e viceversa: uso piu’ cifre per dato -> meno cifre per esp.
![Page 183: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/183.jpg)
183codifica in virgola mobile: base 1000
Possiamo aumentare i limiti di grandezza dei numeri rappresentabili a pari numero cifre della codifica cioe' senza aumentare il num.di cifre del codice ... es: codice con 6 cifre decimali, 2 espon, 4 dato, tutto in base 10
0,50 = 0,50*10^00 => + +00 5000 3,14 = 3,14*10^00=0,314*10^1 => + +01 3141 0,00123=,123*10^-2 => + -02 1230
il numero piu' piccolo + -99 1000 => 0,1000E-99 il numero piu' grande + +99 9999 => 0,9999E+99 NOTA: qui l' esponente e' con base 10 - se cambio base?
![Page 184: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/184.jpg)
184codifica in virgola mobile: base 1000 codice con 6 cifre decimali, 2 espon, 4 dato, tutto in base 10cambio base dell’esponente: invece di 10 e’ 1000 allora:
0,50=0,50 *1000^0 => + +00 5000il numero piu' piccolo + -99 1000 = 0,1000*(1000^(-99)) == 0,1000*((10^3)^(-99)) =0,1000*10^297= 0,1000 E -297il numero piu' grande + +99 9999 = 0,9999*(1000^(-99)) == 0,9999*((10^3)^(99)) => 0,9999 E+297
aumentano i limiti di ordine di grandezza MA ->perdo cifre (precisione):3,14 = 3,14 *1000^0 = se cambia espon.di uno la virgola sisposta di TRE posizioni (base esponente e' 1000) !! = 0,00314*1000^1 => + +01 00310,00123 = ,00123*1000^0 => + +00 0012
![Page 185: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/185.jpg)
185floating point: base dell'esponente
in alcuni modelli di calcolatori sono state usate basi diverse dalla base due: ad esempio con base 16, e quindi l'intervallo di numeri rappresentabili era maggiore
dal 1985 si usa lo standard IEEE 754 (che vedremo tra poco)che usa come base per l'esponente il valore 2
![Page 186: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/186.jpg)
186codifica in virgola mobile: base 10 vs. base 1000codifica con 6 cifre decimali, 2 espon, 4 dato, tutto in base 10,base dell’esponente 10:
3,14 = 3,14*10^00=0,314*10^1=> + +01 3141
se la base dell’esponente invece di 10 e’ 1000 allora abbiamo:
3,14=3,14*1000^0=,00314*1000^1=>+ +01 0031
quindi:
se aumento o diminuisco di 1 l’ esponente con base 1000
devo spostare le cifre del dato di 3 posizioni:
avro’ spesso zeri dopo la virgola decimale normalizzata ->
meno cifre utilizzate -> perdo in precisione
in media perdo 1,5 cifre
![Page 187: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/187.jpg)
187
ancora:
93,93 = 0,9393 *10^2 => + +02 93945678 = 0,45678*10^+5 => + +05 457 0,00712 = 0,712 *10^-2 => + -02 7120,5555 = 0,5555 *10^-0 => + +00 555
se la base dell’esponente invece di 10 e’ 1000 allora abbiamo:
93,93 = 0,09393 *1000^1 => + +01 093 <<==45678,0 = 0,045678*1000^2 => + +02 045 <<==0,00712 = 0,00712 *1000^0 => + +00 007 <<==0,5555 = 0,5555 *1000^0 => + +00 555 <<==
perdo cifre significative, qui in media perdo 1,5 cifre (meta’ cifre della base) guadagno in limiti di grandezza:
ho 1000^(-99)-- 1000^99 invece di 10^(-99) -- 10^99.
codifica in virgola mobile
![Page 188: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/188.jpg)
188esercizio floating point: 7,7E0 in binario ?
esercizio floating point:
dato il formato:
12 bit divisi come segue: 1 bit segno del dato 1 bit segno dell'esponente (codifica con eccesso di 2^3) 3 bit valore esponente (e in complemento a uno) 7 bit valore del dato - ma attenz.: vedi nota qui sotto
dove il 1.o bit del dato e' sempre uno, e non e' memorizzato (ovvero se il dato - parte mantissa - vale 1011 1111, virgola binaria posta davanti la prima cifra, il dato e' memorizzato nella parte cifre come 011 1111 (1.o bit 1 implicito)
trovare la rappresentazione di 7,7 E0
![Page 189: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/189.jpg)
189esercizio floating point continua
esercizio: convertire 7,7E0 in binario, in formato da 12 bit: 1 bit segno dato; cifre del dato: 7 bit esponente: 1 bit segno, 3 bit valore (eccesso 2^3, compl. a 1); devo convertire le cifre del dato e l'esponente; qui l'esponente e' zero, quindi devo convertire solo le cifre: convertire 7,7 da base 10 a base 2: devo convertire separatamente la parte intera, semplice: 7-> 111, (sono i tre bit iniziali delle cifre del dato) e separatamente la parte fratta: solo per quattro bit, perche'con mantissa a 7 bit, 3 bit gia'dati, devo trovare ancora 4 bit 0,7 = 0,abcd (binario) - moltiplicando per due ripetutamente: 1) 0,7*2->1,4; 2)0,4*2->0,8; 3)0,8*2->1,6; 4) 0,6*2->1,2; 5) 0,2*2->0,4; quindi per la parte fratta le cifre binarie sono 0,10110 (e' un 0,7 approssimato con 5 bit, 0,5+0,125+0,0625=0, 6875)
il dato in binario e' 111,10110 normalizzo: 1,1110110 * 2^2
![Page 190: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/190.jpg)
190esercizio floating point: 7,7E0 in binario, continua
1) convertire 7,7E+0 da base 10 a base 2: (1 bit segno dato; 7 bit cifre del dato; esponente: 1 bit segno, 3 bit valore (eccesso di 2^3, compl.a 1);
parte intera 7-> 111, poi la parte fratta - con mantissa a 7 bit, devo trovare ancora 4 bit: 1) 0,7*2->1,4; 2)0,4*2->0,8; 3)0,8*2->1,6; 4) 0,6*2->1,2; 5) 0,2*2->0,4; quindi per la parte fratta le cifre binarie sono 0,10110 (e' un 0,7 approssimato con 5 bit, 0,5+0,125+0,0625=0, 6875)
ora il dato in binario e' 111,10110; normalizzo: 1,1110110 * 2^2
quindi: parte cifre 1,1110110, -> sono 8 bit ?! ... MA:il primo bit poi sara' implicito, quindi restano 7 bit da memorizzare
la parte esponente 2 cioe' 010, con eccesso di 1000: 1000+010=1010
metto insieme e ho:
0 1 010 1110110 = 6,875 E+0
la precisione e' veramente scarsa... visto le poche cifre per il dato ;-)
![Page 191: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/191.jpg)
191somma in virgola mobile
somma con numeri in virgola mobile:
0,xxx*10^E1 + 0,yyy*10^E2 =
1) se E1 = E2 allora le due mantisse si possono sommare:
(0,xxx + 0,yyy) *10^E1
es.:
0,314 E + 1 + 0,250E + 1 = ( 0,314 + 0,250 ) * 10 ^ 1 = = 0,564 * 10^1 = = 0,564 E + 1
![Page 192: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/192.jpg)
192somma in virgola mobile
Per sommare due numeri in virgola mobile, se E1 <> E2 allora devo rendere i due esponenti uguali:porto l'esponente piu' piccolo al valore del piu' grande, es: formato con 3 cifre per dato, 1 per esponente:
0,222E+1 + 0,333E-1 -> e1<>e2 per cui non posso sommare direttamente ->devo aggiustare uno dei due esponenti, cambio l'esponente piu' piccolo e lo metto al valore del piu' grande, scalando di uguale misura la mantissa:
0,222E+1 + 0,00333E+1 = 0,222 * 10 + 0,00333 * 10= (0,222 + 0,00333) * 10 = 0,22533 E+1 <<== RIS.siccome ho solo 3 cifre disponibili -> si troncano le cifre= 0,225 E +1 <== inevitabile errore di troncamento !!!
![Page 193: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/193.jpg)
193somma in virgola mobile - normalizzare risultato
attenz: se la somma delle mantisse fornisce un numero maggiore di uno allora si deve normalizzare il risultato:
0,966 E+1 + 0,555 E+0 = 0,966 E+1 + 0,0555E+1 = 0,966 * 10 + 0,0555 * 10 = = ( 0,966 + 0,0555 )* 10 = (1, 0215) * 10 = 1,0215 E+1 = 0,10215 E+2 [esponente normalizzato] = 0,102E+2 forma normalizzata solo 3 cifre -> abbiamo di nuovo un errore troncamento !
ancora un es.: 0,997E+1 + 0,00423E+1 = 0,997 * 10 + 0,00423 * 10 = (0,997 + 0,00423) * 10 = 1,00123E+1 = 0,100123E+2 = 0,100E+2
![Page 194: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/194.jpg)
194somma in virgola mobile
Per sommare due numeri in virgola mobile:se e1 <> e2 allora devo rendere i due esponenti uguali: abbiamo visto la somma fatta portando l'esponente piu' piccolo al valore del piu' grande ...
e se invece porto l’ esponente piu’ grande al valore del piu’ piccolo?
-> 0,997E+1 + 0,423E-1 = 99,7E-1 + 0,423E-1
non cambia molto ... ma ottengo un numero in forma non normalizzata, devo in ogni caso normalizzare => alla fine ho lo stesso risultato ...... non si usa
![Page 195: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/195.jpg)
195codifica in virgola mobile : overflow
puo’ succedere che il risultato della somma non sia rappresentabile:
dati: 0,9983E+99 e 0,7044E+98, rappresentati ades. formato decimale , 2 cifre per esponente, 4 per dato:
+99 ,9983 = 99 ,9983 +98 ,7044 = 99 ,07044---------------------- ----------------- sommiamo:
99 1,06874 -> normalizzo - 100 ,106874 -> l’esponente e’ > 99
non posso rappresentare l'esponente 100 -> il risultato esce dai limiti della codifica !
==> errore di traboccamento ==> overflow
![Page 196: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/196.jpg)
196codifica in virgola mobile: overflowse l'esponente del risultato di un’operazione aritmetica non e' rappresentabile allora c’e’ un errore di “overflow”:
// caso di formato decimale, con 2 cifre per esponente e 4 per dato: +99 9983 = 99 ,9983 +98 7044 = 99 ,07044 ------------ ---------- 99 1,06874 -> normalizzo - 100 ,106874 -> esponente e’ >99non posso rappresentare l'esponente 100 ! //
nei calcolatori c'e' spesso un meccanismo di controllo automatico su questo errore:
se c’e’un "floating point overflow" allora il calcolatore interrompe (HW!) l' esecuzione del programma e segnala questo fatto in qualche modo.
![Page 197: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/197.jpg)
197standard IEEE
FORMATI STANDARD IN VIRGOLA MOBILE
(IEEE standard 754 Binary Floating Point Arith del 1985)
s 1,ddd...ddd E z ee..ee =
(segno dato s) * [mantissa 1,dddddd] * parte Esponente [= segno z esponente * caratteristica = cifre esponente eeee ]
formato a 32 bit, mantissa dd...dd a 23 bit, esp. zee...ee a 8 bit
formato a 64 bit,
formato a 80 bit,
![Page 198: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/198.jpg)
198standard IEEE 754 del 1985 formato a 32 bit (single precision) max 3.4 E+38 min 1.5 E-45 non normalizzato positivo min 1.2 E-38 normalizzato positivo
mantissa: 23 bit con sottinteso l'uno davanti alla virgola binaria, quindi sono 24 bit, precisione di 7,4 cifre decimali
il dato e' sempre espresso in modo che la mantissa e' compresa tra 1.000..00 e 1.111..11 (dato normalizzato)
esponente binario codice a 8 bit da -126 a +127, con base 2 e rappresentazione in eccesso di 127; (codici 00..0 e 11..1 usati per valori speciali)
formato bit (virgola a dest.della 1.a cifra D)S ZEEEEEEE D,DDD DDDD DDDD DDDD DDDD DDDD
D non e' memorizzato, e' implicito
![Page 199: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/199.jpg)
199es.il dato 42.6875 si codifica come segue:
42.6875 = 101010.1011 = 1.010101011 x 2 5
che per l'esponente da': 127+5 = 132 = 10000100 (8 bit)e per la mantissa 1,01010101100000000000000 (23 bit)e per il segno 0 (1 bit)
totale: 0 10000100 01010101100000000000000
![Page 200: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/200.jpg)
200
Nota: il numero piu' grande per un numero in virgola mobile a 32 bit in formato standard e'
esponente (8 bit, base 2): 127 = 01111111mantissa:(2-2^(-23))=1.1111111111111111111111
quindi il valore (massimo) rappresentato e':
max = (2-2^(-23))*2^(127) = 3.403*10^38
ed il valore minimo (piu' piccolo) ?
dato normalizzato, la mantissa piu' piccola e' 1.0esponente piu' piccolo (base 2) e' -127
![Page 201: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/201.jpg)
201standard IEEE
formato a 64 bit (double precision) circa 15 cifre decimali e intervallo da 10^-300 a 10^300,
max 1.7 E+308 min 5.0 E-324 non normalizzato posit.min 2.3 E-308 normalizzato posit.
esponente binario 11 bit da -1022 a +1023, mantissa: 52+1 (bit implicito) bit
cioe' la precisione e' di 15,5 cifre decimali
formato bit:
S EEE EEE EEE EE DDDDD DDDDD DDDDD DDDDDDDDDD DDDDD DDDDD DDDDD DDDDD DDDDD DD
![Page 202: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/202.jpg)
202standard IEEE
formato a 80 bit (extended)
max 1.1 E+4932 min 1.9 E-4951 non normalizzato posit.min 1.7 E-4932 normalizzato posit.
precisione: 19,5 cifreesponente binario 15 bit da -16382 a 16383, mantissa: 63+1 bit (19,5 cifre decimali)
formato in binario: S EEEEE EEEEE EEEEE DDD DD DDD DD DDD DD DDD DD DDD DD DDD DD DDD DD DDD DD DDD DD DDD DD DDD DD DDD DD DDD
![Page 203: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/203.jpg)
203standard IEEE
quadrupla precisione a 128 bit:
15 bit per l'esponente
111 bit per la mantissa (normalizzata con 1 davanti la virgola binaria)
massimo esponente 32767 (con base binaria)
![Page 204: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/204.jpg)
204altre rappresentazioni (non piu'usate)
osservazione: gli stessi bit possono essere divisi in molti modi, e prima dello standard IEEE 754 erano in uso ad es.
l' IBM 370 usava la codifica:esponente 7 bit, base 16;mantissa 24 bit (7,5 cifre circa)quindi il massimo rappresentabile max = 16^63 * 0,FFFFFF = 0,9999 * E+75 min = 16^(-64) * 0,000001 = 0,1 * E-79
fino agli anni 80 erano in uso molte codifiche diverse, ogni casa costruttrice usava una sua codifica (la Digital usava una sua (su VAX), la Control Data usava una ancora diversa a 60 bit, ecc)
![Page 205: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/205.jpg)
205codici per infinito / non definito
Nota 2) :lo standrad prevede dei codici particolari per indicare numeri "molto grandi" o "praticamente infiniti", usati per i risultati di operazioni del tipo: 7,5 / 0.0
e altri codici per indicare numeri "non definiti" usati per il risultato di un'espress. aritm. del tipo: infinito * zero zero / zero
viene poi definita un' aritmetica per questi codici, del tipo: infinito * x = infinito, non_definito + x = non_definito ...
![Page 206: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/206.jpg)
206unita' aritmetica per interi / per virgola mobile
Nota 3): Le operazioni aritmetiche in virgola mobile sono piu' complesse delle operazioni analoghe su interi, e la realizzazione hw e' piu' complessa. Le istruzioni aritm. in virgola mobile sono realizzate (su calcolatori piccoli) con sequenze di istruzioni apposite (sottoprogrammi);
L' aritmetica in virgola mobile e' realizzata circuitalmente in un'unita' di calcolo "floating-point unit", che puo'essere separata dall'unita' centrale, cosi’ erano ad es. INTEL 80286 + f.p.u. 80287 o MOTOROLA 68020 + f.p.u. 68882)oppure fa parte dell'unita' centrale, che diventa un po' piu' grande; cosi' era per i calcolatori "grandi" (mainframe, es VAX9000, IBM 370-XA - ma anche nei micro processori successivi al 1995 per personal, tipo Intel Pentium o Power PC o ALFA)
![Page 207: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/207.jpg)
207Esercizi: 1)
*) e’ dato un formato di numero in virgola mobile (binario) con 16 bit di cui 10 per le cifre (mantissa) e 5 per l'esponente (compreso il segno dell'esp. “z”):
S Z E E E E D D D D D D D D D D <= binario
a) trovare la precisione in decimale (quante cifre decimali, ovvero il numero x piu' piccolo tale che 1+x <> x)
b) trovare la codifica binaria in tale formato di: 13.5 (in base 8) = 11.625 (in base 10), poi di 6.5 (in base 10), e 5.55 (in base 10) -> per questo valore trovare poi (dal codice binario in virgola mobile) il valore corrispondente in decimale: quante cifre sono state perse?
![Page 208: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/208.jpg)
208esercizi 2)
*) dato il formato di numero in virgola mobile [formato di codifica gia' visto] con 16 bit, di cui 10 per le cifre (mantissa) e 5 per l'esponente (compreso segno dell' espon. “z”):
S Z E E E E D D D D D D D D D D
c) sono rappresentabili esattamente i dati: 3.5, 23.0, 555.0, 5252.0, 78951.0 ?
![Page 209: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/209.jpg)
209esercizi 3)
*) trovare le regole per a) la moltiplicazione e b) la divisione in virgola mobile
(si usi un formato decimale a 6 cifre, di cui 2 per l' esponente e 4 per la mantissa)
![Page 210: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/210.jpg)
210indice sistemi posizionali 2 rappresentazione di numeri 15 conversione analogico - digitale 16 immagini digitali: pixel, colori 28 sistema unario 33 il sistema latino 35 codici posizionali in varie basi 60 un quiz 63 somme numeri in base 2, 3, .. 67 prodotto in binario 72 base sedici (esadecimale) 73 cambio base 82 esercizi 93 frazioni 104 0,1 da base 10 a base due 115 limiti e overflow
![Page 211: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/211.jpg)
211indice capitolo numeri con segno:
NUMERI CON SEGNO
120 numeri con segno 126 numeri in complemento a uno 132 somme con segno 140 complemento a due 149 rappresentazione in eccesso di k 155 esercizi sui numeri con segno
![Page 212: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/212.jpg)
212indice capitolo numeri in virgola mobile :
NUMERI IN VIRGOLA MOBILE
167 rappresentazione di n.i grandi/piccoli 171 precisione 176 limiti 188 esercizio 191 somma in floating point 195 overflow 197 standard IEEE 754 floating point 207 esercizi 210 indice 213 fine parte numeri
![Page 213: 1 SISTEMI DI RAPPRESENTAZIONE DI NUMERI. 2 rappresentazione di numeri contenuto: rappresentazione di numeri in basi diverse rappresentazione binaria,](https://reader036.vdocumenti.com/reader036/viewer/2022081502/5542eb50497959361e8bff04/html5/thumbnails/213.jpg)
213 fine parte numeri
FINE
PARTE
NUMERI