gpt4 book ai didi

c++ - 在 64 位可执行文件中执行 64 位计算

转载 作者:太空狗 更新时间:2023-10-29 19:41:31 25 4
gpt4 key购买 nike

我正在将 MinGW64(带有 -m64 标志)与 Code::Blocks 一起使用,我想知道如何执行 64 位计算,而不必将一个非常大的数字转换为 int64_t 在相乘之前。例如,这不会导致溢出:

int64_t test = int64_t(2123123123) * 17; //Returns 36093093091

如果没有转换,计算会像这样溢出:

int64_t test = 2123123123 * 17; //Returns 1733354723

VirusTotal 扫描确认我的可执行文件是 x64。

附加信息:操作系统是 Windows 7 x64。

最佳答案

出于兼容性原因,即使在 64 位编译中,默认的 int 类型仍然是 32 位。

我猜“最短”的版本是在数字中添加 ll 后缀

int64_t test = 2123123123ll * 17;

另一种方法是将数字存储在它们自己的类型为 int64_t(或 long long)的变量中,然后将变量相乘。通常在程序中很少有将许多“魔数(Magic Number)”硬编码到代码库中。

关于c++ - 在 64 位可执行文件中执行 64 位计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39525958/

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