DOMANDA Overflow con complemento a 2?

Pubblicità

Alberto9823

Nuovo Utente
Messaggi
3
Reazioni
0
Punteggio
20
Salve!
Ho un problema con un esercizio (probabilmente banale) ma non riesco a capirlo:

Devo sommare due interi espressi in complemento a 2 su 32 bit, e capire se la somma genera overflow o no

Y = 0xD3B10000
X = 0x4000AAAA

Altro dubbio: Y è positivo anche se scrivendolo in binario inizia con 1? (D=1101) In questo caso il segno dell'intero lo capisco dallo "0x"?
 
La somma genera Overflow se, facendo la somma stessa, alla fine ti rimane un riporto, tale per cui per scriverlo nel risultato devi aggiungere bit.

Di solito quando il primo bit è pari a 1, in binario, si tratta di un numero negativo, inveve se è 0 si tratta di un numero positivo.

Inviato dal mio SM-G965F utilizzando Tapatalk
 
In questo caso il segno dell'intero lo capisco dallo "0x"?
No, 0x significa che il numero è stato scritto in esadecimale, ma internamente è rappresentato in complemento a 2. Per capire il segno devi fare un test sul bit più significativo: 0 indica un intero positivo ad eccezione dello zero (32 zeri consecutivi), mentre 1 indica un intero negativo. Occhio che in complemento a 2 la sequenza 10...0 (1 seguito da 31 zeri) indica -2^31, attento a non confondere il complemento a 2 con la rappresentazione con bit del segno (che non si può usare)
 
Pubblicità
Pubblicità
Indietro
Top