您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

快速取模3或除法算法?

快速取模3或除法算法?

4 % 3 == 1所以(4^k * a + b) % 3 == (a + b) % 3。您可以使用此事实为32位x评估x%3:

x = (x >> 16) + (x & 0xffff);
x = (x >> 10) + (x & 0x3ff);
x = (x >> 6) + (x & 0x3f);
x = (x >> 4) + (x & 0xf);
x = (x >> 2) + (x & 0x3);
x = (x >> 2) + (x & 0x3);
x = (x >> 2) + (x & 0x3);
if (x == 3) x = 0;

(未经测试-您可能还需要一些简化。)这是否比硬件执行x%3的速度快?如果是这样,那可能不是很多。

其他 2022/1/1 18:13:44 有486人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶