【发布时间】:2016-09-16 07:26:40
【问题描述】:
我正在使用 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。
【问题讨论】:
-
如果您的 MinGW 安装包含
filecommand,您只需运行file a.exe即可打印有关文件的信息。例如在我的 Linux 桌面上:an-executable-I-just-compiled: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, ...。对于 Windows,您无需上传即可查看它是 32 位还是 64 位 PE 格式的可执行文件。
标签: c++ c++11 64-bit x86-64 integer-overflow