Rappresentazione dei numeri

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