打印

取模操作性能为什么比较低

[复制链接]
744|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
saservice|  楼主 | 2023-9-28 22:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
计算器原理层面,取模操作不是一个基本的指令,而是由多个指令组合而成,所以性能会比较低。
public static int floorMod(int x, int y) {
    int r = x - floorDiv(x, y) * y;
    return r;
}


public static int floorDiv(int x, int y) {
    int r = x / y;
    // if the signs are different and modulo not zero, round down
    if ((x ^ y) < 0 && (r * y != x)) {
        r--;
    }
    return r;
}


使用特权

评论回复
沙发
AloneKaven| | 2023-9-29 22:09 | 只看该作者
有什么办法可以尽量避开取模啊?

使用特权

评论回复
板凳
tpgf| | 2023-10-14 14:57 | 只看该作者
一个数除以另一个数,要是比另一个数小的话,余数就是它自己。

使用特权

评论回复
地板
木木guainv| | 2023-10-14 16:11 | 只看该作者
对于普通的单片机来说 取模操作会消耗大量的资源

使用特权

评论回复
5
chenjun89| | 2023-10-16 22:45 | 只看该作者
是因为取模是按位运算嘛?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

43

主题

1257

帖子

2

粉丝