c - 用条件循环每个数字的最快方法

标签 c performance bit-manipulation bitwise-operators

给定一个 64 位整数,其中要计算的最后 52 位和前 12 位将被忽略,循环 7 位和所有其他位的每个组合的最快方法是什么?

例子:

第一个排列:

0[x57]1111111

最后的排列

00000000000011111110[x45]

0[xn] 表示 n 关闭(零)位。

速度绝对至关重要,我们希望尽可能节省每个时钟周期,因为它是需要在合理时间内评估数十亿个状态的更大解决方案的一部分。

不需要可行的解决方案,但一些伪代码就可以了:)

最佳答案

我想您会对这篇文章感兴趣:http://realtimecollisiondetection.net/blog/?p=78

它以非常有效的方式解决了您的问题。

关于c - 用条件循环每个数字的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3931306/

相关文章:

c - 为什么使用 typedef *after* 结构定义?

c - 自动附加到 SEGV 和其他致命信号(panic_action)上的进程

用于简单碰撞检测的 Javascript 位图

c - 分段故障核心转储

将 C 字节数组转换为 long long

multithreading - Numba 是 "only"将我的代码改进了 4 倍。它能做得更好吗?

mysql - 如何在非常大的 MySQL 表上提高 INSERT 性能

bit-manipulation - 找到主导位

C++ 为什么不提供整数的系统最大大小?

c - 数据类型范围有限