Fondamenti di Informatica Codifica Binaria di Numeri [Sez: 2.5] Prof. De Maio Carmen [email protected] Riassumendo Binario Decimale: 1. Mi annoto la posizione a partire dal bit più a destra con la posizione 0 2. Applico la notazione posizionale Np = an x pn + an-1 x pn-1 + … + a1 x p + a0 10012 = 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20 = 8 + 1 = 9 Trucchi: (*) Se il numero binario termina con un bit a 0 il decimale è necessariamente un numero pari (e viceversa) (**) Se il numero binario termina con un bit a 1 il decimale è necessariamente un numero dispari (e viceversa) Esercizi da svolgere 10012 N10 = 9 910 N2 = 1001 110012 N10 = 25 2510 N2 = 11001 1010102 N10 = 42 4210 N2 = 101010 1110102 N10 = 58 5810 N2 = 111010 11111112 N10 = 127 12710 N2 = 1111111 1112 N10 = 7 710 N2 = 111 0102 N10 = 2 210 N2 = 10 11112 N10 = 15 1510 N2 = 1111 10102 N10 = 10 1010 N2 = 1010 Decimale Binario: Riassumendo 1. Divido per 2 finché il risultato della divisione non è 0 2. Leggo il numero binario prendendo i resti di tutte le divisioni a partire dall’ultima divisione eseuita 9 2 1 4 2 0 2 2 0 1 2 Trucchi: 1 0 (*) Se il numero decimale è pari il binario termina con un bit a 0 (e viceversa) (**) Se il numero decimale è dispari il binario termina con un bit a 1 (e viceversa) Da Binario a Ottale/Esadecimale Per trasformare un numero binario in ottale, operiamo la trasformazione considerando gruppi di 3 bit gruppi di 4 bit Da Binario a Ottale/Esaecimale N2 = 1 0 0 1 1 0 1 1 1 1 0 N8 = 2 3 3 6 N16 = 4 D E Per trasformare un numero binario in ottale, operiamo la trasformazione considerando gruppi di 3 bit Per trasformare un numero binario in esadecimale, operiamo la trasformazione considerando gruppi di 4 bit Base 16 • Quali dei seguenti numeri esadecimali sono numeri sono corretti? BED CAR 938 DEAD BEBE A129 ACI DECADE BAG DAD 4H3 Esercizi 10012 N8 = ? 118 10012 N16 = ? 916 110012 N8 = ? 318 110012 N16 = ? 1916 1010102 N8 = ? 528 1010102 N16 = ? 2A8 1110102 N8 = ? 728 1110102 N16 = ? 3A8 11111112 N8 = ? 1778 11111112 N16 = ? 7F16 1112 N8 = ? 78 1112 N16 = ? 716 0102 N8 = ? 28 0102 N16 = ? 216 11112 N8 = ? 178 11112 N16 = ? F16 10102 N8 = ? 128 10102 N16 = ? A16 10/6/2015 8 Binario Ottale: Riassumendo 1. Raggruppo a 3 a 3 i bit a partire dall’ultimo bit più a destra 2. Converto ciascun gruppo nella corrispondente cifra ottale Binario Esadecimale: 1. Raggruppo a 4 a 4 i bit a partire dall’ultimo bit più a destra 2. Converto ciascun gruppo nella corrispondente cifra esadecimale (*) Mi devo ricordare che: A=10 B=11 C=12 D=13 E=14 F=15 10/6/2015 9 Rappresentazione degli Interi “Modulo e Segno” N = 0,+1,-1,+2,-2,+3,-3,… Come possiamo rappresentare il segno di un numero? Aggiungiamo un ulteriore bit che poniamo a 1 se il numero è negativo! Esempio N10 = +14 N2 = 01110 N10 = -14 N2 = 11110 Soluzioni ESERCIZI • Scrivere in binario semplice su 7 bit il numero 1310 = 0001101 • Scrivere in modulo e segno su 7 bit il numero 1310 = 0001101 • Scrivere in modulo e segno su 7 bit il numero -1310 =1001101 • Scrivere in modulo e segno su 5 bit il numero 1710 = ?? – – – – 10001 In modulo e segno è -110 RISPOSTA: Non è possibile. Ho bisogno di almeno 6 bit (010001) Esercizi da Svolgere (TODO) • Scrivere in binario semplice su 7 bit il numero 1110 = 00010112 • Scrivere in modulo e segno su 8 bit il numero 2510 = 000110012 • Scrivere in modulo e segno su 7 bit il numero -1210 = 10011002 • Scrivere in modulo e segno su 5 bit il numero 2010 = errore Rappresentazione degli Interi Rappresentazione in complemento a 2 Supponiamo di avere a disposizione k bit La rappresentazione di –N si ottiene facendo la conversione in binario del numero 2k-N Esempio (con 5 bit) N10 = +14 N10 = -14 N2 = 01110 2k-14 =18 N2 = 10010 Complemento a due: Riassumendo Il complemento a due è il metodo più diffuso per la rappresentazione dei numeri negativi in informatica. La sua enorme diffusione è data dal fatto che i circuiti di addizione e sottrazione non devono esaminare il segno di un numero rappresentato con questo sistema per determinare quale delle due operazioni sia necessaria, permettendo tecnologie più semplici e maggiore precisione; si utilizza un solo circuito, il sommatore, sia per l'addizione che per la sottrazione. 1) Un numero nel codice “complemento a 2” (o “complemento a 2 meno 1”) è negativo se il bit maggiore è 1. Altrimenti è un numero positivo. Cioè: in un codice con 4 bit per il valore e 1 per il segno (del tipo xxxxx ) - i codici 0xxxx indicano numeri positivi - i codici 1xxxx indicano numeri negativi Riassumendo Complemento a due: •01000 codifica un numero positivo di valore 8 •00000 codifica un numero “positivo” di valore Zero ESERCIZI- TO DO • Siano dati i seguenti numeri in base dieci: +7, −7, +23, −23, +48, −48. • Si indichi il loro valore binario nelle rappresentazioni modulo e segno e complemento a due su 6 bit. ESERCIZI- TO DO • In binario puro, e sul numero minimo di bit, si ha che: – +7 = 111 – +23 = 10111 – +48 = 110000 Base 10 Modulo e segno Complemento a due +7 -7 000111 100111 000111 111001 +23 -23 010111 110111 010111 101001 +48 -48 Non si può fare abbiamo bisogno di 7 bit