Rappresentazione dei numeri Notazione posizionale: ( xyz ) k = x × k 2 + y × k 1 + z × k 0 (1011) 2 = 1× 23 + 0 × 22 + 1× 21 + 1× 20 = (11)10 Cambio di base: Da base x a base y : • Trasformo il numero da base x in base 10 • Applico il procedimento mod/div al numero in base 10 ed ottengo il numero in base y Caso particolare: conversione tra basi che sono potenze di 2, il passaggio e’ diretto Esercizi sul cambio di base: 1) Rappresentare in base 2 i seguenti numeri: a) (3241)base5 b) (3241)base8 c) (3241)base16 Soluzione a) Il numero va convertito prima in base 10, tenendo presente il significato della rappresentazione posizionale dei numeri otteniamo: (3241) 5 = 3 × 53 + 2 × 52 + 4 × 51 + 1× 50 = 375 + 50 + 20 + 1 = 446 Dai numeri espressi in base 10 ricaviamo la rappresentazione in base 2 utilizzando l'algoritmo mod&div DIV 446 223 111 55 27 13 6 3 1 0 MOD 0 1 1 1 1 1 0 1 1 (3241)5=(110111110)2 b) E’ possibile applicare il procedimento usato per il precedente esercizio, ma dato che la base di partenza (base 8) è una potenza della base di arrivo conviene fare la conversione direttamente, senza passare dalla base 10. Ogni cifra della base 8 può essere rappresentata con 3 cifre in base 2. Per convertire il numero è sufficiente convertire le singole cifre singolarmente. 3 2 4 1 011 010 100 001 (3241)8 = (011010100001)2 c) Si procede come nel caso b) con la differenza che ogni cifra in base 16 deve essere rappresentata con 4 cifre in base 2. 3 2 4 1 0011 0010 0100 0001 (3241)16 = (0011001001000001)2 2) Sia dato il numero (2412)basex, rappresentato in una base x non precisata. a) Indicare il valore minimo che deve assumere x affinché la rappresentazione del numero abbia senso. b) Supponendo x = 6 rappresentare il numero in base 2 Soluzione: a) In base x sono rappresentabili tutte le cifre comprese tra 0 e x-1. Quindi visto che nella rappresentazione del numero è presente la cifra 4, deve essere x ≥ 5. b) (2412)6 = 2 × 63 + 4 × 62 + 1× 61 + 2 × 60 = 432 + 144 + 6 + 2 = 584 Applicando quindi l’algoritmo mod&div otteniamo DIV 584 292 146 73 36 18 9 4 2 1 0 MOD 0 0 0 1 0 0 1 0 0 1 (2412)6 =(1001001000)2 3) (Dai testi di esame) a) Data la rappresentazione (3EEA19)16 in base 16, trasformarla in base 2. b) Data la rappresentazione in base due (1001 0101 1111 1110), esprimere il numero in base 16. Soluzione a) 3 E E A 1 9 0011 1110 1110 1010 0001 1001 (3EEA19)16 = (1111101110101000011001)2 b) 1001 0101 1111 1110 9 5 F E (1001010111111110)2 = (95FE)16 4) Data la rappresentazione (1221)3 in base 3, trasformarla in base 7. (1221)3 = 1× 33 + 2 × 32 + 2 × 31 + 1× 30 = 27 + 18 + 6 + 1 = 52 DIV 52 7 1 0 (1221)3 = (103)7 MOD 3 0 1 Rappresentazione dei numeri interi Modulo e segno Intervallo di rappresentabilità: [-(2p-1-1), +(2p-1-1)] p = 4 [-7,+7] p = 8 [-127, +127] p=16 [-32767, +32767] |x| se x ≥ 0 2p-1 + |x| se x ≤ 0 X se X < 2p-1 -(X-2p-1) se X ≥ 2p-1 X= x= Complemento a due Intervallo di rappresentabilità: [-(2p-1), +(2p-1-1)] p = 4 [-8,+7] p = 8 [-128, +127] p=16 [-32768, +32767] |x| se x ≥ 0 2p - |x| se x < 0 X se X < 2p-1 -(2p-X) se X ≥ 2p-1 X= x= 1) Scrivere i seguenti numeri decimali nelle varie codifiche in binario puro, modulo e segno e complemento a 2 tutte su 8 bit. 15,-19,-128, 45, -232 Intero base 10 +15 -19 -128 +45 -232 Binario +00001111 -00010011 -10000000 +00101101 +11101000 Modulo e segno 00001111 10010011 Non Rappr. 00101101 Non Rappr Complemento a 2 00001111 11101101 10000000 00101101 Non Rappr 2) Convertire in modulo e segno e in complemento a due i seguenti numeri interi con segno, indicando per ogni conversione il numero di bit necessari per rappresentarlo: 32,+16,-46,-18,-4,-256 Intero base 10 -32 +16 -46 -18 -4 -256 Binario -100000 10000 -101110 -10010 -100 1000000000 Modulo e segno 1100000 (7 bit) 010000 (6 bit) 1101110 (7 bit) 110010 (6 bit) 1100 (4bit) 1100000000 (10 bit) Num Bit 2 3 4 5 6 7 8 9 10 Max Binario 3 7 15 31 63 127 255 511 1023 Modulo e segno [-1, +1] [-3, +3] [-7, +7] [-15, +15] [-31, +31] [-63, +63] [-127, +127] [-255, +255] [-511, +511] Complemento a 2 100000 (6 bit) 010000 (6 bit) 1010010(7 bit) 101110 (6bit) 100 (3 bit) 100000000 (9 bit) Complemento a 2 [-2, +1] [-4, +3] [-8, +7] [-16, +15] [-32, +31] [-64, +63] [-128, +127] [-256, +255] [-512, +511] 3) (dai testi di esame) a) Scrivere la rappresentazione in base 2 dei numeri (6532)8 e (FA4A)16. b) Scrivere la rappresentazione in complemento a due (utilizzando 8 cifre) del numero intero –106. a) (6532)8 = (110 101 011 010)2 (FA4A)16 = (1111 1010 0100 1010)2 b) 10010110