-

[DOMANDA] Overflow con complemento a 2?

#1
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"?
 
#2
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
 
#3
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)
 
Mi Piace: Andretti60

Discussioni Simili


Entra

Guarda il video live di tomshardwareita su www.twitch.tv