Università degli Studi di Ferrara Corso di Laurea in Informatica A.A. 2007/2008 Tutorato di Architettura degli Elaboratori e Laboratorio Cambio di base Operazioni binarie Dott.ssa Ambra Giovannini 15 Aprile 2008
Recapiti Dott.ssa Ambra Giovannini Polo scientifico tecnologico, stanza B315 e-mail: ambra.giovannini@student.unife.it e Laboratorio 2
noi umani oggi SISTEMA DECIMALE e Laboratorio 3
Il sistema decimale Cifre (simboli): 0123456789 Posizionale: la stessa cifra ha significati diversi a seconda della posizione che occupa in un dato numero. 10281 = = 1*10 4 + 0*10 3 + 2*10 2 + 8*10 1 + 10 0 = 1*10000 + 0*1000 + 2*100 + 8*10 + 1 = diecimiladuecentottantuno e Laboratorio 4
Il sistema decimale 10 0 1 10 1 10 Potenze di dieci 10 2 100 10 3 1000 10 4 10000 10 5 100000 10 6 1000000 10 7 10000000 10 8 100000000 10 9 1000000000 e Laboratorio 5
nei calcolatori SISTEMA BINARIO SISTEMA ESADECIMALE e Laboratorio 6
Il sistema binario Cifre (simboli): 01 Il sistema esadecimale Cifre (simboli): 0123456789ABCDEF Per distinguere un numero scritto in base esadecimale, solitamente gli si antepone X oppure 0x. e Laboratorio 7
DECIMALE BINARIO BINARIO DECIMALE e Laboratorio 8
decimale binario Dato un numero in decimale, le cifre in binario sono i resti delle divisioni successive per 2 del numero in decimale. 25 : 2 = 12 con resto 1 12 : 2 = 6 con resto 0 6 : 2 = 3 con resto 0 3:2= 1 con resto 1 1 : 2 = 0 con resto 1 (25) 10 = (11001) 2 NB: I resti si leggono dal basso verso l alto: il resto della prima divisione sarà il bit meno significativo. il resto dell'ultima divisione sarà il bit più significativo. e Laboratorio 9
binario decimale Potenze di due 2 0 1 2 1 2 2 2 4 2 3 8 2 4 16 2 5 32 2 6 64 2 7 128 2 8 256 2 9 512 2 10 1024 e Laboratorio 10
binario decimale Dato un numero in binario, le cifre in decimale sono la somma delle potenze di 2 moltiplicate per il valore delle cifre binarie di partenza. (11001) 2 = (25) 10 1 * 2 4 + 1 * 2 3 + 0 * 2 2 + 0 * 2 1 + 1 * 2 0 = = 1 * 16 + 1 * 8 + 0 * 4 + 0 * 2 + 1* 1 = 25 e Laboratorio 11
DECIMALE ESADECIMALE ESADECIMALE DECIMALE e Laboratorio 12
decimale esadecimale decimale esadecimale decimale esadecimale 0 0 10 A 1 1 2 2 3 3 4 4 5 5 11 B 12 C 13 D 14 E 15 F 6 6 7 7 8 8 9 9 e Laboratorio 13
decimale esadecimale Dato un numero in decimale, le cifre in esadecimale sono i resti delle divisioni successive per 16 del numero in decimale. 27 : 16 = 1 con resto (11) 10 0xB 1 : 16 = 0 con resto (1) 10 0x1 (27) 10 = (1B) 16 NB: I resti si leggono dal basso verso l alto: il resto della prima divisione sarà la cifra meno significativa del numero in esadecimale. il resto dell ultima divisione sarà la cifra più significativa del numero in esadecimale. e Laboratorio 14
esadecimale decimale Potenze di sedici i 16 0 1 16 1 16 16 2 256 16 3 4096 16 4 65536 e Laboratorio 15
esadecimale decimale Dato un numero in esadecimale, le cifre in decimale sono la somma delle potenze di 16 moltiplicate per il valore delle cifre binarie di partenza. (1B) 16 = (27) 10 1 * 16 1 + B * 16 0 = = 1 * 16 + B * 1 = = (1) 10 * 16 + (11) 10 * 1 = 27 e Laboratorio 16
ESADECIMALE BINARIO e Laboratorio 17
binario esadecimale binario esadecimale binario esadecimale 0000 0 1010 A 0001 1 0010 2 0011 3 0100 4 0101 5 1011 B 1100 C 1101 D 1110 E 1111 F 0110 6 0111 7 1000 8 1001 9 e Laboratorio 18
esadecimale binario NB: 16 = 2 4 quindi ad ogni cifra esadecimale corrispondono quattro bit, e viceversa: 0x1 =(0001) 2 0xB =(1011) 2 (1B) 16 = (00011011) 2 e Laboratorio 19
BASE 10 BASE B BASE B BASE 10 e Laboratorio 20
base 10 base B Dato un numero N in base 10, le cifre in una qualsiasi base B sono i resti delle divisioni successive di N per la base di arrivo B. (25) 10 = (11001) 2 = (34) 7 25 : 7 = 3 resto 4 3:7 = 0 resto 3 e Laboratorio 21
base B base 10 In una base generica B, il valore della cifra C in posizione i-esima di un dato numero N è: C i * B i dove i assume i valori interi positivi a partire da 0 e viene incrementato scorrendo le cifre da destra verso sinistra. i (135) 10 = 1*10 2 + 3*10 1 + 5*10 0 (234) 7 = 2*7 2 + 3*7 1 + 4*7 0 = (123) 10 (10A) = 1*16 2 + 0*16 1 + A*16 0 16 = (266) 10 e Laboratorio 22
SOMMA BINARIA COMPLEMENTO A 2 SOTTRAZIONE BINARIA e Laboratorio 23
somma binaria 25 + 7 = 32 25 = (11001) 2 7 = (111) 2 1 1 1 1 riporti 1 1 0 0 1+ 1 1 1= ------------------- 1 0 0 0 0 0 (32) 10 e Laboratorio 24
complemento a 2 Dato il numero di bit con cui rappresentare un dato valore: se il numero è positivo, il suo complemento a due è il numero stesso; se il numero negativo, il suo complemento a due è il suo modulo negato e quindi sommato a uno. Usiamo 6 bit (-7) 10 Primo il suo modulo: (7) 10 = (000111) 2 Secondo il suo modulo negato: (111000) 2 Terzo sommare 1: (111001) 2 e Laboratorio 25
sottrazione binaria Usiamo 6 bit 25-7 = 25 + (-7) = 18 Abbiamo già calcolato che: (25) 10 = (011001) 2 (-7) 10 = (111001) 2 Non ci resta che fare la somma: 1 1 0 0 1 riporti 0 1 1 0 0 1 + 1 1 1 0 0 1 = ------------------- 1 0 1 0 0 1 0 (18) 10 e Laboratorio 26
shift Data una sequenza di bit, lo shift a destra equivale a una divisione per potenze di 2 lo shift a sinistra equivale a una moltiplicazione per potenze di 2 (16/4 = 4) 10 (16) 10 = (10000) 2 divisione shift a destra: (10000) 2 = (4) 10 (7*2 = 14) 10 (7) 10 = (111) 2 moltiplicazione li i shift a sinistra: i (1110) 2 = (14) 10 e Laboratorio 27
ESERCIZI e Laboratorio 28
Esercizi Dati i seguenti numeri in base 10 trasformarli in base 2, 7, 8 e 13: 22, 15, 37, 55, 133 Dati i seguenti numeri nelle basi indicate, trasformali in base 10: (22) 3, (15) 4, (37) 8, (2E) 16, (272) 60, (101011) 2 Si considerino i due numeri interi a=57 e b=34 a) si esprimano tali numeri in rappresentazione binaria in complemento a due su 8 bit; b) si esprimano tali numeri in rappresentazione in base 7 unsigned; c) si utilizzi la rappresentazione binaria per calcolare b-(a*2). e Laboratorio 29