【发布时间】:2023-04-07 07:03:01
【问题描述】:
使用 64 位的 C++ Long Long int 是否会限制使用该程序仅在 64 位操作系统上执行,还是在 32 位操作系统上执行时仍会处理 64 位值?
我有一个程序,我将整数种子传递给随机生成器,并使用种子作为随机算法中起始位置的键。我用 long long int 编译了我的代码,它编译并运行没有问题,但是我的系统运行的是 Windows 7 64 位,我没有 32 位系统来测试它。虽然这个程序将主要在我的 64 位系统上运行,但这个问题背后的原因是要了解 long long int 使用是否仅适用于 64 位 OS 系统,或者 32 位系统是否可以通过说 2 处理 64 位 int或更多时钟周期来处理 64 位,而 64 位操作系统能够在更少的时钟周期内处理它等?也许我将苹果与橙子与 64 位 int 与 64 位 CPU/OS 进行比较?认为如果能够由 32 位 CPU/OS 处理,它可能在 64 位 int 上效率低下?
【问题讨论】:
-
请分享程序以便更好地理解
-
有助于了解如何在 32 位环境中实现 64 位类型和操作:stackoverflow.com/a/20773254/2805305
-
查看en.cppreference.com/w/cpp/types/integer 当您需要一个必须足够大以处理特定位数的变量时,最好使用那些“编号”的 int 类型。当您只需要一个整数时,您应该使用“普通”int 类型,但在这种情况下您可以做出的唯一假设是 sizeof(int)
-
它基于此源,但 IF 逻辑已被彻底纠正为仅利用 ASCII 调用而不是为要从数组调用的字符分配我自己的映射。我只是想扩大可用于影响随机生成器算法起始位置的键的范围。在序列重复之前不知道随机生成器算法的总长度,long long int 种子可能是矫枉过正? stackoverflow.com/questions/34698580/…
标签: c++