草庐IT

2500000000

全部标签

c++ - 为什么我不能直接将 __int64 变量设置为 -2500000000?

此程序是在WindowsXP机器上用VC++6.0编写的。如果我尝试将__int64变量直接设置为-2500000000,它会被截断为32位值并采用二进制补码。__int64testval;testval=-2500000000;此时testval等于1794967293(1101010111111010000011100000000二进制)。当我将变量设置为2500000000然后乘以负一时,它起作用了:__int64testval;testval=2500000000;testval*=-1;变量testval等于-2500000000(二进制1001010100000010111