gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 13:16:18 25 4
gpt4 key购买 nike

此程序是在 WindowsXP 机器上用 VC++6.0 编写的。

如果我尝试将 __int64 变量直接设置为 -2500000000,它会被截断为 32 位值并采用二进制补码。

__int64 testval;
testval = -2500000000;

此时 testval 等于 1794967293(110 1010 1111 1101 0000 0111 0000 0000 二进制)。

当我将变量设置为 2500000000 然后乘以负一时,它起作用了:

__int64 testval;
testval = 2500000000;
testval *= -1;

变量 testval 等于 -2500000000(二进制 1001 0101 0000 0010 1111 1001 0000 0000)。

有什么想法吗?谢谢。

最佳答案

获取更新的编译器。 VC6 标准合规性非常差。

在VC6中,试试i64的后缀,如

__int64 toobig = -2500000000i64;

找到 the documentation !

关于c++ - 为什么我不能直接将 __int64 变量设置为 -2500000000?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5046452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com