190 likes | 512 Views
Rappresentazione dell’informazione. Claudia Raibulet raibulet@disco.unimib.it. Rappresentazione di numeri. I sistemi di numerazione definiscono: L’insieme dei simboli base (CIFRE) L’insieme di regole che permettono di definire la rappresentazione di un numero mediante una stringa di cifre
E N D
Rappresentazione dell’informazione Claudia Raibulet raibulet@disco.unimib.it
Rappresentazione di numeri • I sistemi di numerazione definiscono: • L’insieme dei simboli base (CIFRE) • L’insieme di regole che permettono di definire la rappresentazione di un numero mediante una stringa di cifre • L’insieme di operazioni • Il numero di simboli utilizzati nel sistema di numerazione è detto la base del sistema • Lo stesso numero è rappresentato da numerali diversi in diversi sistemi: • Esempio: • 156 nel sistema decimale –> CLVI in cifre romane
Sistemi posizionali • Il numero rappresentato da una cifra dipende dalla cifra stessa e dalla posizione occupata dalla cifra nella stringa in cui si trova • Esempio: • Il sistema decimale: base = 10, cifre = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} • Numero 32145 = 3*104 + 2*103 + 1*102 + 4*101 + 5*100 • In generale: • Il numero cn cn-1 cn-2 …c2 c1 cn in base b rappresenta: cn*bn + cn-1*bn-1 + cn-2*bn-2 + … + c2*b2 + c1*b1 + c0*b0 doveci<b
Sistema binario • Base = 2, cifre = {0, 1} • Esempio: 1110012 = 1*25 + 1*24 + 1*23 + 0*22 + 0 *21 + 1*20 • Conversione dalla base 2 alla base 10: 1110012 = 1*25 + 1*24 + 1*23 + 0*22 + 0 *21 + 1*20 = 32 + 16 + 8 +0 + 0 + 1 = 57
Sistema binario • Conversione dalla base 10 alla base 2: • dato N>0 interodividiamo N per 2, otteniamo un quoto Q0 ed un resto R0 • dividiamo Q0 per b, otteniamo un quoto Q1 ed un resto R1 • ripetiamo finché Qn = 0 • Esempio: convertire 123 decimale in binario: Q R 123 : 2 61 1 61 : 2 30 1 30 : 2 15 0 15 : 2 7 1 7 : 2 3 1 3 : 2 11 1 : 2 0 1 => 12310 = 11110112
Sistema binario Con n bit si rappresentano i numeri da 0 a 2n-1 n = 4 n = 3 n = 2 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111 000 001 010 011 100 101 110 111 00 01 10 11
Sistema ottale • Base 8, cifre = {0, 1, 2, 3, 4, 5, 6, 7} • Esempio: 64358 = 6*83+4*82 +3*81 + 5*80 • Conversione dalla base 8 alla base 10: 64358 = 6*83+4*82 +3*81 + 5*80 = 3072 + 256 + 24 + 5 = 3357 Con n bit si rappresentano i numeri da 0 a 8n-1
Sistema ottale • Conversione dalla base 10 alla base 8: • dato N>0 interodividiamo N per 8, otteniamo un quoto Q0 ed un resto R0 • dividiamo Q0 per b, otteniamo un quoto Q1 ed un resto R1 • ripetiamo finché Qn = 0 • Esempio: convertire 123 decimale in ottale: Q R 123 : 8 15 3 15 : 8 1 7 1 : 8 0 1 => 12310 = 1738
Sistema esadecimale • Base 16 • Cifre {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} A16 = 1010 B16 = 1110 C16 = 1210 D16 = 1310 E16 = 1410 F16 = 1510
Sistema esadecimale • Conversione dalla base 16 alla base 10 • Conversione dalla base 10 alla base 16 1AC716 = 1*163 + A*162 + C*161 + 7*160 = 1*163 + 10*162 + 12*161 + 7*160 = 4096 + 2560 + 192 +7 = 685510 Q R 6855:16 428 7 428 :16 26 12 26 :16 1 10 1 :16 0 1
Conversione tra sistemi numerici • Da base qualsiasi a base 10 – algoritmo: • Consideriamo solo valori interi • Si può applicare direttamente la definizione: • Esempi E4D16 = (E·162 + 4·161 + D·160)10 = 366110
Conversione tra sistemi numerici • Da base 10 a base qualsiasi – algoritmo: • se dividiamo il valore N (il numerro) per la base b (la base qualsiasi) si ottiene un quoziente q0 e un resto d0 che è la cifra di peso inferiore (peso zero) del valore N nella base b • Ripetendo il procedimento si ricavano le cifre del valore nella base desiderata (i resti delle divisioni) a partire dal posizione meno significativa • Il processo di divisione si arresta quando il quoziente ottenuto è nullo e l’ultimo resto costituisce la cifra di peso maggiore
Conversione tra sistemi numerici • Esempio: il valore 10610e’ rappresentato in binario: 106 2 0 53 2 1 26 2 d0 0 13 2 d1 1 6 2 d2 0 3 2 d3 1 1 2 d4 1 0 d5 d6 d6d5d4d3d2d1d0 Risultato: 1 1 0 1 0 1 02
Esercizi – cambio di base • 521 da base 8 a base 10 • 23 da base 10 a base 2 • 67 da base 10 a base 2 • A8E da base 16 a base 10 • 329 da base 10 a base 16 • 321 da base 8 a base 2
Conversione da binario a ottale e viceversa • Per passare da base 2 a base 8 si divide il numero in base 2 in gruppi di tre cifre a partire da destra (da LSB) e si sostituiscono tali gruppi con le corrispondenti cifre ottali • Esempio: • Per passare da base 8 a base 2 si rappresenta ogni cifra del numero in base 8 con la sua rappresentazione in binario su tre cifre • Esempio: 1 100 101 010 1112 = 145278 512678 = 101 001 010 110 1112
Conversione da esadecimale a binario e viceversa • Per passare da base 2 a base 16 si divide il numero in base 2 in gruppi di quatro cifre a partire da destra (da LSB) e si sostituiscono tali gruppi con le corrispondenti cifre esadecimali • Esempio: • Per passare da base 16 a base 2 si rappresenta ogni cifra del numero in base 16 con la sua rappresentazione in binario su quatro cifre • Esempio: 101 1001 0101 01112 = 595716 A263716 = 1010 0010 0110 0011 01112