salve spero di non essere OT. ho un problema con l'operazioni in virgola mobile, è da un paio di giorni che ci rifletto ma non capisco dove sbaglio. per prima cosa il nostro professore non ci fa adottare lo standard in virgola mobile, ma i numeri li rappresentiamo in questo modo: 1 bit per il segno, 5 bit per la mantissa espressa nella forma normale cioè ci riconduciamo ad una mantissa compresa tra 1 e 2, in modo da poter trascurare l'1; l'esponente lo prendiamo in complemento a 2. veniamo al calcolo. dato un numero A=4,492*10^-2, che secondo lo standard di cui ho parlato è 0 01110 1011 e dato il numero B=-1.58*10^-1 che nel nostro standard è 1 01000 1101. li voglio sommare. per prima cosa debbo parificare gli esponenti riconducendomi all'esponente minore che in questo caso è quello di A cioè -5, quindi debbo sommare all'esponente di B -2 e per mantenere le cose debbo moltiplicare la mantissa di B per 4 che equivale ad introdurre due 0 a destra. a questo punto sommo le mantisse, ma ATTENZIONE, dato che non so fare la somma in modulo e segno, trasformo le mantisse in complemento a 2 allineando a destra i numeri per cui ho ##01110+1100000 dove # sono gli 0 che debbo aggiungere per avere lo stesso numero di bit. la somma mi fornisce 1101110. a questo punto vado a vedere che numero ho ottenuto facendo la trasformazione inversa: 2^1+2^0+2^-2+2^-3+2^-4=3.4375, a questo punto sommo 1 che avevo eliminato in precedenza, ho quindi 4.4375*2^-5 cioè -0.1386718, mentre ovviamente avrei dovuto ottenere -0.11308. aiutatemi a capire dove sto sbagliando grazie in anticipo
- pubblicata
18 anni fa