【发布时间】:2011-02-11 03:34:46
【问题描述】:
我刚刚在我的 32 位机器上尝试了 MSVC 2010 中的一些东西,发现我可以在我的程序中使用 __int64 - 这确实有效!
这怎么可能?
【问题讨论】:
-
你甚至可以使用标准的 int64_t!
-
@el.pescado:
int64_t仅在 C99 中是标准的;它目前不是 C++ 标准的一部分,但将在即将发布的 C++0x 中添加。 -
在实践中,您的 32 位机器(即 >Pentium)有一些原生的 64 位支持,它也有 36 位的地址空间。只是 Windows 选择将您限制为 32 位
-
阅读您的评论后,我反汇编了一个释放模式程序,该程序将 2 个 int64 值相乘,以查看它是否使用特殊指令。它没有。你确定 Pentium 支持 64 位算术吗?
-
Well x86 指令集是为轻松链接 add、sub、mul 而设计的。不幸的是,虽然 64 位 div 乘以 32 位,但 64 位 div 的实现并不容易。
标签: c++ math visual-c++ 64-bit 32bit-64bit