64位int arthimetic on 32bit x86(来自c)

use*_*913 0 c c++ x86 winapi 32-bit

有没有一种在32 x86机器上使用64位整数的快速方法(在c(添加:和c ++)语言编译器中)?

32位x86在某种程度上支持64位操作(旧mmx中有一些movq指令,可能还有其他一些命令),但如何从c中使用它?

如果有人想在32位x86机器上使用64位int算术怎么办 - 如何最简单有效地完成?

//编辑

到现在为止我找到了一些候选人

    uint64_t A;
    long long a;
    int64 a;
    __int64 a;
Run Code Online (Sandbox Code Playgroud)

应该用什么?是否有可能某些上述关节炎的实施比其他更好/更快?

Dee*_*epu 7

要执行64位操作,您可以使用int64_tuint64_t.

它们C99由头文件定义stdint.h.

  • 我使用特定于microsoft的__int64类型.这甚至可以用于Visual Studio 6,并且它可以在32位环境中高效,例如64位添加将由两个32位ADD指令模拟.您不能在32位模式下使用本机64位指令. (2认同)