Ti ringrazio davvero per la tua risposta: definirla esauriente e soddisfacente è dire poco; se fossero tutti come te, i forum pian piano diventerebbero delle enciclopedie!
Vorrei approfittare ancora della tua conoscenza per mettere definitivamente delle pezze su ciò che so del linguaggio binario.
Ho provato (da solo e senza soluzione alla mano) a svolgere un esercizio. Ti chiedo di vedere se è giusto e di chiarirmi alcuni dubbi.
Si considerino due notazioni binarie in virgola mobile a 16 bit, entrambe con 1 bit per il segno (0=positivo), e bit per l'esponente, rappresentato in eccesso 2^(e-1), ed i rimanenti m bit per la parte frazionaria della mantissa che è normalizzata tra 1 e 2. Nella prima notazione e=4 ed m=11, nella seconda e=8 ed m=7.
Dato il numero n rappresentato nella prima notazione dalla stringa 35D7, rappresentarlo nella seconda notazione;
In binario il numero diventa: 0011 0101 1101 0111.
Inizio a normalizzare la mantissa: per farlo dovrò innanzitutto prendere in esame solo le prime 7 cifre significative delle "vecchie" 11.
Dunque avrò: 1011101. Normalizzo: 1,1011101 * 2^7.
Poiché adesso sono in eccesso 127, l'esponente sarà 127+7=134. In binario è: 10000110.
Nella nuova notazione il binario sarà: 0 10000110 1011101.
Passiamo alle mie domande, spero di non abusare del tuo aiuto.
1) Perché per ottenere l'esponente devo sommare 127? Non dovrei sommare solo 7, visto che si tratta di 2^7 e non 2^127?
2) A cosa serve il complemento a due (o a uno)?
3) Perché nella tua risoluzione del mio esercizio sottrai 128 a 131?
Grazie per la pazienza.