gpt4 book ai didi

c - 非二次幂数的快速除法和模运算

转载 作者:太空宇宙 更新时间:2023-11-04 08:32:28 24 4
gpt4 key购买 nike

我正在尝试优化除法和模块化操作以提高 C 代码的整体性能。

我有

UINT32 quo = num / 520 ;
UINT32 rem = num % 520 ;

大多数博客都提到了对 2 个操作的强大功能的优化,例如

num % (2^i) = num & (2^i -1 ).

我的代码中的 num 将是一个相当大的数字。

请为上述代码建议替代方法。

最佳答案

正如 Oliver 已经在评论中提到的,编译器应该自动优化除法和模运算。但是,如果您想了解更多关于常数除数除法的优化(如示例中的 520),您可能会找到此链接 http://ridiculousfish.com/blog/posts/labor-of-division-episode-iii.html有帮助。

诀窍是找到一个合适的因子,这样除法运算就可以用乘法移位运算代替。

关于c - 非二次幂数的快速除法和模运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27709055/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com