Questo programma è scritto in VC++ 6.0 su un computer WindowsXP.Perché non posso impostare direttamente una variabile __int64 a -2500000000?
Se si tenta di impostare direttamente una variabile __int64 a -2500000000, viene troncato a un valore a 32 bit e viene preso il complemento a due.
__int64 testval;
testval = -2500000000;
A questo punto testVal uguale 1794967293 (110 1010 1111 1101 0000 0111 0000 0000 binario).
Quando ho impostato la variabile di 2500 milioni e poi moltiplicare per uno negativo, così:
__int64 testval;
testval = 2500000000;
testval *= -1;
Il testVal variabile è uguale -2500000000 (1001 0101 0000 0010 1111 1001 0000 0000 binario).
Qualche idea? Grazie.
MSVC6? Ahia! Fa male! –