Come si ricavano le espressioni in rappresentazione modulo e segno?
Ciao ragazzi, non capisco cosa devo fare in questo esercizio... ve lo scrivo:
Si ricavino l'espressioni in rappresentazione modulo e segno e comprlemento a 2 a 10 bit dei seguenti numeri relativi:
(+20)pedice 10
(-54)pedice 10
(+54)pedice 10
(0)pedice 10
AIUTOOOO!
Si ricavino l'espressioni in rappresentazione modulo e segno e comprlemento a 2 a 10 bit dei seguenti numeri relativi:
(+20)pedice 10
(-54)pedice 10
(+54)pedice 10
(0)pedice 10
AIUTOOOO!
Risposte
Per prima cosa dire "a 10 bit" significa che qualunque numero scriviamo, esso dovra' essere rappresentato su 10 cifre.
Pertanto ad esempio 1 in base 10 (che corrisponde a 1 in base 2) dovra' essere scritto come
0000000001
Quindi sempre su 10 bit.
Detto questo, rappresentiamo modulo e segno:
Si tratta di:
a) trasformare il numero in base 10: questo lo ottieni dividendo il numero per 2, ed evidenziare i resti. Alla fine scriverai il numero prendendo le cifre dei resti, dall'ultimo resto al primo.
20 : 2 = 10 RESTO 0
10 : 2 = 5 RESTO 0
5 : 2 = 2 RESTO 1
2 : 2 = 1 RESTO 0
1 : 2 = 0 RESTO 1
Pertanto il valore cercato e' 10100 (le cifre dei resti al contrario)
su 10 bit sara' 0000010100
b) anteporre 0 se e' positivo, 1 se e' negativo. E siccome e' positivo, lo lasciamo cosi'.
Vediamo il secondo (e il terzo, visto che dobbiamo trasformare 54)
54 : 2 = 27 RESTO 0
27 : 2 = 13 RESTO 1
13 : 2 = 6 RESTO 1
6 : 2 = 3 RESTO 0
3 : 2 = 1 RESTO 1
1 : 2 = 0 RESTO 1
Il valore cercato e' 110110
Su 10 bit 0000110110
Il numero +54 base 10 e' gia' scritto
Per il numero -54 dovremo anteporre 1 alla cifra, ottenendo 1000110110
Per quanto riguarda 0 in base 10, avremo
0000000000
Ma siccome (e' il grande problema della rappresentazione in modulo e segno) 0 e' anche -0 il numero zero lo rappresentiamo in due modi:
0000000000
1000000000
Per la rappresentazione in complemento a 2:
Se il numero e' positivo nulla cambia.
Quindi +20 sara' sempre 0000010100
Per i numeri negativi invece dovrai:
rappresentare il numero binario
Quindi per -54 dovrai fare:
Rappresentiamo 512 in base 2:
512 : 2 = 256 RESTO 0
256 : 2 = 128 RESTO 0
128 : 2 = 64 RESTO 0
64 : 2 = 32 RESTO 0
32 : 2 = 16 RESTO 0
16 : 2 = 8 RESTO 0
8 : 2 = 4 RESTO 0
4 : 2 = 2 RESTO 0
2 : 2 = 1 RESTO 0
1 : 2 = 0 RESTO 1
Dal momento che il numero binario e' gia' lungo 10 bit non potra' essere rappresentato.
Pertanto ad esempio 1 in base 10 (che corrisponde a 1 in base 2) dovra' essere scritto come
0000000001
Quindi sempre su 10 bit.
Detto questo, rappresentiamo modulo e segno:
Si tratta di:
a) trasformare il numero in base 10: questo lo ottieni dividendo il numero per 2, ed evidenziare i resti. Alla fine scriverai il numero prendendo le cifre dei resti, dall'ultimo resto al primo.
20 : 2 = 10 RESTO 0
10 : 2 = 5 RESTO 0
5 : 2 = 2 RESTO 1
2 : 2 = 1 RESTO 0
1 : 2 = 0 RESTO 1
Pertanto il valore cercato e' 10100 (le cifre dei resti al contrario)
su 10 bit sara' 0000010100
b) anteporre 0 se e' positivo, 1 se e' negativo. E siccome e' positivo, lo lasciamo cosi'.
Vediamo il secondo (e il terzo, visto che dobbiamo trasformare 54)
54 : 2 = 27 RESTO 0
27 : 2 = 13 RESTO 1
13 : 2 = 6 RESTO 1
6 : 2 = 3 RESTO 0
3 : 2 = 1 RESTO 1
1 : 2 = 0 RESTO 1
Il valore cercato e' 110110
Su 10 bit 0000110110
Il numero +54 base 10 e' gia' scritto
Per il numero -54 dovremo anteporre 1 alla cifra, ottenendo 1000110110
Per quanto riguarda 0 in base 10, avremo
0000000000
Ma siccome (e' il grande problema della rappresentazione in modulo e segno) 0 e' anche -0 il numero zero lo rappresentiamo in due modi:
0000000000
1000000000
Per la rappresentazione in complemento a 2:
Se il numero e' positivo nulla cambia.
Quindi +20 sara' sempre 0000010100
Per i numeri negativi invece dovrai:
rappresentare il numero binario
[math] 2^{10-1}-k [/math]
dove k e' il numero da rappresentare (54)Quindi per -54 dovrai fare:
[math] 2^9-54 = 512 [/math]
Rappresentiamo 512 in base 2:
512 : 2 = 256 RESTO 0
256 : 2 = 128 RESTO 0
128 : 2 = 64 RESTO 0
64 : 2 = 32 RESTO 0
32 : 2 = 16 RESTO 0
16 : 2 = 8 RESTO 0
8 : 2 = 4 RESTO 0
4 : 2 = 2 RESTO 0
2 : 2 = 1 RESTO 0
1 : 2 = 0 RESTO 1
Dal momento che il numero binario e' gia' lungo 10 bit non potra' essere rappresentato.