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

[复制链接]
1168|4
 楼主| saservice 发表于 2023-9-28 22:00 | 显示全部楼层 |阅读模式
计算器原理层面,取模操作不是一个基本的指令,而是由多个指令组合而成,所以性能会比较低。
  1. public static int floorMod(int x, int y) {
  2.     int r = x - floorDiv(x, y) * y;
  3.     return r;
  4. }


  5. public static int floorDiv(int x, int y) {
  6.     int r = x / y;
  7.     // if the signs are different and modulo not zero, round down
  8.     if ((x ^ y) < 0 && (r * y != x)) {
  9.         r--;
  10.     }
  11.     return r;
  12. }


AloneKaven 发表于 2023-9-29 22:09 来自手机 | 显示全部楼层
有什么办法可以尽量避开取模啊?
tpgf 发表于 2023-10-14 14:57 | 显示全部楼层
一个数除以另一个数,要是比另一个数小的话,余数就是它自己。
木木guainv 发表于 2023-10-14 16:11 | 显示全部楼层
对于普通的单片机来说 取模操作会消耗大量的资源
chenjun89 发表于 2023-10-16 22:45 来自手机 | 显示全部楼层
是因为取模是按位运算嘛?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

43

主题

1563

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部