Passa al tema normale
Discussioni su argomenti di Informatica

Regole del forum

Consulta il nostro regolamento e la guida per scrivere le formule
Rispondi al messaggio

Somma esadecimali

30/12/2010, 12:53

Salve a tutti, non so dove postare questo esercizio che non riesco a capire, inerente a Architettura dei calcolatori, quindi chiedo scusa in anticipo se ho postato in una sezione sbagliata. L'esercizio è il seguente:

Valutare la seguente somma tra interi relativi da 28 BIT, rappresentati in modulo e segno:

35ABD77 - A459C31

Dovrebbe riportare BA058A8 e non so come cavolo gli è uscito.
Le mie considerazioni sono: il primo numero è positivo, il secondo è negativo e maggiore in modulo del primo, in mezzo c'è un meno che dovrebbe cambiare il segno dell'operazione che diventerebbe una addizione. Anche riscrivendo il secondo numero con complemento a 16 non riporta... HELP!

30/12/2010, 15:10

ciao,

allora mi sembra che il tuo dubbio, risieda nel secondo numero.
Ti consiglio di fare così:

- converti i due numeri (35ABD77) e (A459C31) in base 2. Ricorda che gli esadecimali sono gruppi di numeri di 4 bit in base 2.
- adesso hai due strade o segui la logica dei numeri binari, o usi la proprietà dell'addizione.

Proprietà addizione:
Essendo che $-(-B) = +B$ quello che farai è fare una somma, cambiando il bit più significativo in positivo (essendo che sei in modulo e segno e in 28 Bit).

Proprietà numeri binari:
Puoi usare le proprietà del complemento a due; modifichi il sottraendo facendolo diventare positivo (in modulo e segno), fai complemento a due, perciò avrai una sottrazione secondo le proprietà del complemento a due.
Per fare la sottrazione secondo queste condizioni, rifai il complemento a due del sottraendo, e avrai alla fine da fare una semplice somma binaria, essendo però che hai segni concordi devi stare attento all'overflow.

Spero sia chiaro :-)

EDIT:
ricordavo di aver letto e risposto ad una domanda simile, era la tua :) in questo post:
https://www.matematicamente.it/forum/com ... 63886.html
posta pure domande relative a quel dubbio, tanto la domanda è uguale.

30/12/2010, 15:37

Che risultato ottieni?

02/01/2011, 14:02

Allora ecco il ragionamento che mi porta a un diverso risultato:
A459C31 è negativo poiché A= 1010 e il bit di segno è quindi 1, negativo.
poiché il segno è negativo e l'operazione da eseguire è una differenza, cambio il bit di segno del secondo numero e faccio la somma, cioè -(A459C31) = 2459C31.
Quindi ora l'operazione da fare è diventata 35ABD77 + 2459C31 che secondo i miei calcoli fa 5A059A8, risultato che non riporta.
Sbaglio io o a questo punto sbaglia chi ha messo l'altro risultato?
Rispondi al messaggio


Skuola.net News è una testata giornalistica iscritta al Registro degli Operatori della Comunicazione.
Registrazione: n° 20792 del 23/12/2010.
©2000— Skuola Network s.r.l. Tutti i diritti riservati. — P.I. 10404470014.