Ciao,

purtroppo il procedimento che hai usato non è corretto. Vediamo perchè.

Rappresentiamo il numero che hai calcolato con degli spazi tra il segno, l'esponente e la mantissa:

0 10000110 1011101

Eseguiamo i calcoli per vedere qual è il valore decimale rappresentato:

Segno 0: il numero è positivo.

Esponente = 10000110 che in decimale è uguale a 134 e al quale dobbiamo sottrarre il codice eccesso( 128 = 2^(8-1) ):

134 - 128 = 6

La parte frazionaria della mantissa è 1011101. Calcoliamo il corrispondente valore in decimale:

2^-1 + 2^-3 + 2^-4 + 2^-5 + 2^-7 = 0,5 + 0,125 + 0,0625 + 0,03125 + 0.0078125 = 0.7265625

Applicando la seguente formula

(-1)^s * (1 + M') * 2^(E-128)

dove s è il segno, M' è la parte frazionaria della mantissa e E-128 rappresenta l'esponente

si ottiene:

(-1)^0 * (1 + 0,7265625) * 2^6 = 1,7265625 * 64 = 110,5


Applichiamo gli stessi calcoli per il numero rappresentato, nella prima notazione, da 35D7:

0 0110 10111010111

Codice eccesso: 2^(4-1) = 8.
Segno 0: il numero è positivo.
Esponente: 0110 = 6 in decimale. Essendo in codice eccesso 8, bisogna sottrargli 8:
6 - 8 = -2 (L'esponente è dunque negativo).

Parte frazionaria della mantissa:

10111010111 = 1*2^-1 + 0*2^-2 + 1*2^-3 + 1*2^-4 + 1*2^-5 + 0*2^-6 + 1*2^-7 + 0*2^-8 + 1*2^-9 + 2^-10 + 2^-11 =

2^-1 + 2^-3 + 2^-4 + 2^-5 + 2^-7 + 2^-9 + 2^-10 + 2^-11 =

= 0,5 + 0,125 + 0,0625 + 0,03125 + 0,0078125 + 0,001953125 + 0,0009765625 + 0,00048828125 = 0,72998046875

Applicando la formula:

(-1)^0 * ( 1 + 0,72998046875 ) * 2^-2 = 1,72998046875 * 0.25 = 0,4324951171875

Dunque il numero decimale rappresentato da 35D7 vale circa 0,432495 e non 110,5.


Rappresentiamo il numero 0,432495 nella seconda notazione, come chiede l'esercizio:

Il numero è positivo: segno 0.
0,432495 = 0,01101 perchè:

La parte intera, 0, è uguale sia in decimale che in binario. Per la parte frazionaria si eseguono i seguenti calcoli:

codice:
0,432495*
       2
--------
0,864990*
       2
--------
1,729980*   (Attenzione: ogni volta che il risultato è > 1, sottraiamo 1 prima di moltiplicare).
       2
--------
1,459960*
       2
--------
0,919920*
       2
--------
1,839840

Spostiamo la virgola di due posizioni a destra, in modo da ottenere un 1 alla sinistra della virgola (così come richiesto dalle regole per le quali la mantissa normalizzata deve essere compresa tra 1 e 2):

1,101

Spostando di di due posizioni verso destra (invece che verso sinistra), l'esponente è ovviamente negativo: -2.

Quindi il numero si normalizza così:

1,101 * 2^-2

L'esponente, in codice eccesso 8, è:

-2 + 8 = 6

6 in binario è uguale a 110

e, dunque, il risultato è:

0 00000110 1010100


Per quanto riguarda le domande prima e terza, ormai, dagli esempi precedenti, dovrebbe esserti chiara la risposta.
La rappresentazione in complemento a 2 è l'ideale per i numeri interi con segno perchè non ha il problema del doppio zero e facilita i calcoli.
Qui trovi qualche esempio:

http://home.dei.polimi.it/sykora/inf...es1/node9.html


Ciao