DOMANDA Overflow con complemento a 2?

Alberto9823

Nuovo Utente
3
0
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"?
 

Falco98

Utente Attivo
213
7
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
 

BAT

Moderatore
Staff Forum
Utente Èlite
22,923
11,563
CPU
1-Neurone
Dissipatore
Ventaglio
RAM
Scarsa
Net
Segnali di fumo
OS
Windows 10000 BUG
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
Reazioni: Andretti60

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili