La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Rappresentazione dell’Informazione. Rappresentazione delle informazioni in codice binario Caratteri Naturali e Reali positivi Interi Razionali.

Presentazioni simili


Presentazione sul tema: "Rappresentazione dell’Informazione. Rappresentazione delle informazioni in codice binario Caratteri Naturali e Reali positivi Interi Razionali."— Transcript della presentazione:

1 Rappresentazione dell’Informazione

2 Rappresentazione delle informazioni in codice binario Caratteri Naturali e Reali positivi Interi Razionali

3 Rappresentazione del testo Una stringa di bit per ogni simbolo (caratteri maiuscoli, caratteri minuscoli, cifre,...) ANSI ( American National Standards Institute ) ha adottato il codice ASCII ( American Standard Code for Information Interchange ): 7 bit per ogni simbolo + 0 come bit piu’ significativo =un byte

4 Rappresentare numeri Il codice ASCII e’ inefficiente: per rappresentare numeri con n cifre servono n byte Meglio usare metodi che sfruttano la notazione binaria (base 2) Base 2: solo le cifre 0 e 1 invece che 0, 1,..., 9 (base 10)

5 Base 10 e base 2

6 Rappresentazione decimale Base 10  cifre da 0 a 9 Sequenza di cifre decimali d k-1 … d 1 d 0  numero intero ∑ j=0…k-1 d j 10 j d k-1 x 10 k-1 + … d 1 x 10 + d 0 Esempio: 102 in base 10 è 1x100 + 0x10 + 2x1

7 Rappresentazione binaria Base 2  cifre 0 e 1 Sequenza di cifre binarie d k-1 … d 1 d 0  numero intero (stesso procedimento ma su base 2) ∑ j=0…k-1 d j 2 j Esempio: 0101101 2 = 1·2 5 + 1·2 3 + 1·2 2 + 1·2 0 = 32 + 8 + 4 + 1 = 45 10

8 Rappresentazione binaria  Valore minimo di una sequenza di n cifre binarie: 000 … 0 (n volte) = 0 10  Valore massimo: 1111…111 (n volte) = 2 n-1 + 2 n-2 + … + 2 2 + 2 1 + 2 0 = 2 n –1  Esempio con n=3: 111 = 2 2 + 2 + 1 = 7 = 2 3 -1  Da 0 a 8: 0, 1, 10, 11, 100, 101, 110, 111, 1000

9 Una proprietà dei numeri binari 1001001= 73 100100 = 36 = 73/2 e questo è il resto Eliminare il bit più a destra corrisponde a dividere per 2 il valore, ed il bit eliminato è il resto

10 Trasformazione di un numero in base 10 a numero binario 125 125/2=62 resto 1 62/2=31 resto 0 31/2=15 resto 1 15/2=7 resto 1 7/2=3 resto 1 3/2=1 resto 1 1/2=0 resto 1 125 in binario è 1111101 rappresenta 62 rappresenta 31 Etc.

11 Esercizio 1 Scrivere la rappresentazione binaria dei numeri decimali: 30 36 15

12 Esercizio 2 Scrivere la rappresentazione decimale dei numeri binari: 1000 1010 01011 10111

13 Correzione degli esercizi Scrivere la rappresentazione binaria dei numeri decimali: 30  11110 36  100100 15  1111

14 Scrivere la rappresentazione decimale dei numeri binari: 1000  8 1010  10 01011  11 10111  23 Correzione degli esercizi

15 Somma binaria

16 Riporto: 1 1 1 1 0 0 011100 2 + 100111 2 = ----------- 1000011 2  Colonna per colonna, da destra a sinistra  Riporto se la somma su una colonna supera la base  Tre cifre binarie (prima riga, seconda riga, riporto), somma =1 se una o tre sono 1, riporto = 1 se almeno due sono 1

17 1 11 riporti 1010011 + 1100011 = ---------- 10110110 Si vuole quindi costruire un circuito per sommare due numeri binari

18 10000110 riporti 1010011 + 1100011 = ---------- 10110110 Iniziamo con un circuito che faccia la somma su una colonna Abbiamo tre cifre binarie X, Y, R in input mentre in output vogliamo ottenere la somma S ed il riporto R'

19 Tabella di verità X Y R S R' 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1

20 Supponiamo di avere i circuiti che calcolano somma e riporto SOMMA X Y R S RIPORTO X Y R R'

21 Possiamo allora combinare i circuiti SOMMA e RIPORTO per ottenere il seguente circuito 1-ADD SOMMA X Y R S RIPORTO R' 1-ADD

22 Il circuito RIPORTO puo` essere realizzato nel seguente modo X Y R R' RIPORTO Basta infatti verificare la corrispondente tabella di verita’

23 Il circuito SOMMA naturalmente puo' pure essere realizzato (vedi dispensa). A questo punto componendo K circuiti 1-ADD e` possibile realizzare un circuito K-ADD che somma due numeri binari di K cifre. Vediamo l'esempio della somma di due numeri binari di 4 cifre.

24 Y 3 Y 2 Y 1 Y 0 X 3 X 2 X 1 X 0 1-add 1-add 0 riporto iniziale riporto finale inutile risultato Somma di numeri di 4 bit S0S0 S1S1 S2S2 S3S3 0R0R0 R1R1 R2R2 R3R3

25 0 1 1 00 1 1 1 1-add 1-add 1 1 0 1 001 1 0 Esempio 0111 + 0110 = ------ 1101

26 Attenzione Si e` trascurato il problema del cosiddetto overflow, cioe’ il risultato e’ troppo grande per essere contenuto nei bit disponibili. Per esempio: 0111 + 1110 = ------ 10101

27 Esercizi 11011+ 1100 --------- 11111+ 1 ---------

28 Correzioni 11011+ 1100 --------- 11111+ 1 --------- 100111 1 100000 11111

29 Rappresentazione dei reali

30 Reali in notazione binaria b k-1 b k-2 … b 2 b 1 b 0, b -1 b -2 … b k-1 x 2 k-1 + b k-2 x 2 k-2 +… + b 2 x 2 2 + b 1 x 2 + b 0 x 2 0 + b -1 x 2 -1 + b -2 x 2 -2 +… Da decimale a binario:  Per la parte intera, come sappiamo fare (metodo delle divisioni)

31 REALE--> BINARIO cosa significa una parte frazionaria binaria:.1101001 2 -1 + 2 -2 + 2 -4 + 2 -7

32 .1101001 moltiplicarlo per 2 significa spostare il punto di un posto a destra 1. 101001 2 -1 2 -2... 2 0 2 -1.......

33 Se abbiamo un valore decimale in base 10: 0.99 come troviamo la sua rappresentazione in base 2? Ragioniamo come segue: Supponiamo che.99 =.b 1 b 2 b 3...b k (binario) Allora 2 .99 = 1.98 = b 1. b 2 b 3...b k Quindi b 1 è 1 e.98 è rappresentato da. b 2 b 3...b k

34 Per trovare la rappresentazione binaria di un decimale lo moltiplichiamo per 2 ed osserviamo se 1 appare nella parte intera:.59  2= 1.18.18  2= 0.36.36  2= 0.72.72  2= 1.44.44  2= 0.88.88  2= 1.76........100101..... dipende da quanti bit abbiamo rappresentazione binaria di.59

35 Esempio 18.59 18  10010 (metodo della divisione per 2).59 .100101... (metodo della moltiplic. per 2) 10010.100101....

36 Esercizi Convertire i seguenti numeri binari in formato decimale:  11,01  101,111  10,1 Esprimere i seguenti valori in notazione binaria:  4.5  2.75 Eseguire le seguenti somme binarie:  1010,001+1,101  111,11+0,01

37 Correzione degli esercizi Convertire i seguenti numeri binari in formato decimale:  11,01  3 +1/4 = 13/4 = 3.25  101,111  5 + 7/8 = 47/8 = 5.87  10,1  2.5 Esprimere i seguenti valori in notazione binaria:  4.5  100,1  2.75  10,11 Eseguire le seguenti somme binarie:  1010,001 + 1,101  1011,110  111,11 + 0,01  1000,00

38 SECONDA PARTE

39 Rappresentazione degli interi

40 Notazione in complemento a 2 n bit per la notazione  Nella realta’ n=32  Per comodita’ noi supponiamo n=4 Numeri positivi  0 si rappresenta con 4 zeri 0000  1  0001, 2  0010 e cosi’ come gia’ visto fino al massimo positivo rappresentabile 0111  7 Numeri negativi  -1 si rappresenta con 4 uni 1111  -1  -2 -> 1110, -3  1101 fino al minimo negativo rappresentabile 1000  -8 Gli interi rappresentabili con n bit [-2 n-1, 2 n-1 -1]  Nell’esempio [-2 4-1,2 4-1 -1]=[-8,7]

41 Complemento a due su 3 e 4 bit

42 Complemento a due Bit piu’ a sinistra: segno (0 per positivi, 1 per negativi) Confrontiamo k e –k: da destra a sinistra, uguali fino al primo 1 incluso, poi una il complemento dell’altra Esempio (4 bit): 2=0010, -2=1110

43 Complemento a due: decodifica Se bit di segno =0  positivo, altrimenti negativo Se positivo, basta leggere gli altri bit Se negativo, scrivere gli stessi bit da destra a sinistra fino al primo 1, poi complementare, e poi leggere Es.: 1010 e’ negativo, rappresenta 110 (6), quindi -6

44 Da k a -k

45 Metodo alternativo: codifica e decodifica Intero positivo x  complemento a due su n bit: se x  2 n-1 -1 scrivo (x) 2, altrimenti non e’ rappresentabile  Esempio: n=4, x=5, (5) 2 =0101, x=8>2 3 -1=7 Intero negativo –x  complemento a due su n bit: se –x  -2 n-1 calcolo 2 n +(-x)=y e scrivo (y) 2  Esempio: n=4, –x=-3 y=2 4 -3=16-3=13 (13) 2 =1101 Compl. a due positivo (0 = bit + significativo)  decimale: decodifica dal binario  Esempio: n=4, 0111=(7) 2 Compl. a due negativo (1 = bit + significativo)  decimale: decodifico dal binario a decimale, ottengo y e poi sottraggo y-2 n  Esempio 1010 = (10) 2 10-16=-6

46 Somma in complemento a due Si utilizza il solito metodo Anche per sottrazione  basta avere i circuiti per somma e complemento  Es. (4 bit): 7-5 = 7 +(-5) = 0111 + 1011 = 0010  5 = 0101  -5 = 1011  L’eventuale n+1-simo bit generato a sinistra dal riporto deve essere troncato  Esempio 0111+1011=10010 7-52

47 Esempi di somme

48 Overflow Si sommano due numeri positivi tali che il risultato e’ maggiore del massimo numero positivo rappresentabile con i bit fissati (lo stesso per somma di due negativi) Si ha un errore di overflow se:  Sommando due positivi si ottiene un numero che inizia per 1: 0101+0100=1001, 5+4=-7  Sommando due negativi viene un numero che inizia per 0: 1011+1100= (1)0111, -5+(-4)= 7 Nei computer c’e’ overflow con valori superiori a 2.147.483.647= 2 31

49 Esercizi Da complemento a 2 a base 10:  00011, 01111, 11100, 11010, 00000, 10000 Da base 10 a complemento a 2 su 8 bit:  6, -6, 13, -1, 0 Numero piu’ grande e piu’ piccolo per la notazione in complemento a 2 su 4, 6, 8 bit

50 Correzioni Da complemento a 2 a base 10:  00011  3,  01111  15,  11100  -4,  11010  -6,  00000  0,  10000  -16 Da base 10 a complemento a 2 su 8 bit:  6, -6, 13, -1, 0  00000110, 11111010, 00001101, 11111111, 00000000 Numero piu’ grande e piu’ piccolo per la notazione in complemento a 2 su 4, 6, 8 bit  Numero piu’ piccolo -2 n-1 (n=6  -2 5 = -32)  Numero piu’ grande 2 n-1 -1 (n=6  2 5 -1 = 31)

51 Correzioni (1) Convertire i seguenti numeri binari in formato decimale:  11,01  3 +1/4 = 13/4 = 3.25  101,111  5 + 7/8 = 47/8 = 5.87  10,1  2.5 Esprimere i seguenti valori in notazione binaria:  4.5  100,1  2.75  10,11 Eseguire le seguenti somme binarie:  1010,001 + 1,101  1011,110  111,11 + 0,01  1000,00

52 Notazione in eccesso n bit  2 n possibili configurazioni binarie ordinate da n zeri a n uni Supponiamo per comodita’ che n=4 0 e’ rappresentato da un 1 seguito da n-1 zeri: 0  1000 n zeri codifica -2 n-1 : - 2 4-1 = -8  0000 (0-8 = -8) n uni codifica 2 n-1 – 1: 2 4-1 -1= 7  1111 (15-8 = +7) n bit: notazione in eccesso 2 n-1 rispetto al corrispondente binario  Es.: 4 bit, notazione in eccesso 8

53 Notazione in eccesso 8

54 Esercizi Da eccesso 8 a decimale:  1110, 0111, 1000,0010, 0000, 1001 Da decimale a eccesso 8  5, -5, 3, 0, 7, -8 Numero piu’ grande e piu’ piccolo per la notazione in eccesso 8, 16, 32

55 Correzioni (1) Da eccesso 8 a decimale:  1110  14-8=6  0111  7-8=-1  1000, 0010, 0000, 1001 0, -6, -8, 1 Da decimale a eccesso 8  5  5+8  13  1101  -5  -5+8  3  0011  3, 0, 7, -8 1011, 1000, 1111, 0000

56 Correzioni (2) Numero piu’ grande e piu’ piccolo per la notazione in eccesso 8, 16, 32  eccesso 8: 8=2 n-1  n=4 numero piu’ piccolo: -8, numero piu’ grande 7  eccesso 16: 16=2 n-1  n=5 numero piu’ piccolo: -16 numero piu’ grande 15  eccesso 32: 32=2 n-1  n=6 numero piu’ piccolo: -32 numero piu’ grande 31

57 Rappresentazione dei numeri reali (floating point)

58 Rappresentazione dei reali in un computer Bisogna rappresentare la posizione della virgola Notazione in virgola mobile (floating point): suddivisione in tre campi Esempio con 8 bit:  Partendo da sinistra: primo bit  segno (0 pos., 1 neg.)  Tre bit per esponente  Quattro bit per mantissa V = 0.mantissa * 2^{exp}

59 Da floating point a decimale 01101011 1. Segno: 0  positivo, 1  negativo 2. Anteporre 0, alla mantissa 01101011  0,1011 3.Interpretare l’ esponente come un numero in eccesso su tre bit (eccesso 4) 110  6, 6-4 =2 4. Spostare la virgola della mantissa della quantita’ ottenuta dall’esponente a dx se il numero positivo a sx se e’ negativo 0,1011  10,11 5.Tradurre da binario a decimale mettendo il segno a seconda del bit piu’ significativo del foating point 10,11  2,75 6.Aggiungere il segno: +2,75

60 Altro esempio di decodifica 10111100 Segno: 1  negativo Mantissa: 1100  0,1100 Esponente: 011  -1 in notazione in eccesso 4  virgola a sinistra di 1 posto  0,01100 (3/8, infatti 2x2^(-2) + 2x2^(-3) ) Numero decimale: -3/8 = -0,375

61 Da decimale a floating point 1. Da decimale a binario: 0.375 (=3/8)  0,011 2. La mantissa si ottiene dall’1 piu’ a sinistra completando con zeri i quattro bit 1100 3. Contare di quante posizioni si deve spostare la virgola per passare da 0,mantissa a 0,011. Il numero e’ negativo se la virgola va a sinistra 1 bit a sinistra  -1 4. Codificare il numero ottenuto in eccesso 4 -1 +4= 3  011 5. Mettere nel bit piu’ significativo il bit di segno 00111100

62 Errori di troncamento Codifichiamo 2 + 5/8= 2.625 in 8 bit Binario: 10,101 Mantissa: vorremmo scrivere 10101, ma abbiamo solo 4 bit  1010, tronco il bit meno significativo Esponente: 110 (2) Risultato: 01101010, che rappresenta 2.5 e non 2 + 5/8  Infatti: 0,1010  110 (2)  10,10  2+ ½ = 2.5

63 Esercizi Decodifica: 01001010, 01101101, 00111001 Codifica: 2.75, 5.25 Qual e’ il piu’ grande tra 01001001 e 00111101?

64 Correzioni (1) Decodifica: 0 100 1010  5/8 = 0.625 Infatti: 0 100 1010 --> positivo 0,1010 100 --> 4-4=0 0.1010 1/2+1/8= 5/8 = 0.625 --> 0.625 Codifica: 2.75 --> 0 110 1011 Infatti: binario 10,11 1011 --> 2 posti a dx 2 --> 110 0 110 1011

65 Correzioni (2) Decodifica: 0 110 1101  3 + 1/4 = 13/4 = 3.25 0 011 1001  9/32 Codifica: 5.25  0 111 1010 Qual e’ il piu’ grande tra 01001001 e 00111101? Il primo e’ 0.56, il secondo e’ 0.40  il piu’ grande e’ il primo


Scaricare ppt "Rappresentazione dell’Informazione. Rappresentazione delle informazioni in codice binario Caratteri Naturali e Reali positivi Interi Razionali."

Presentazioni simili


Annunci Google