在C中实现模运算符作为函数

时间:2010-04-18 03:19:37

标签: c operators modulo

如何在不使用运算符的情况下将模运算符作为C函数实现?

5 个答案:

答案 0 :(得分:37)

进行整数除法后跟乘法,然后减去。

#include <stdio.h>
int main()
{
  int c=8, m=3, result=c-(c/m*m);
  printf("%d\n", result);
}

答案 1 :(得分:9)

你走了:

a % b = a - (b * int(a/b))

答案 2 :(得分:5)

您可以通过从x % y重复减去y并跟踪结果来模拟x。在每次迭代中,如果结果小于y,那么你有剩余的,并且可以返回它。

答案 3 :(得分:5)

简单:

  

如果商a/b可以表示,则表达式(a/b)*b + a%b应等于a

(C99标准,6.5.5 / 6)。

答案 4 :(得分:0)

Dividend / Divisor = Quotient

公式(在Python 3中)如下:

Modolus = Divident - Dividend // Divisor * Divisor

例如,如果Dividend = 5,Divisor = 2,那么

模数= 5 - 5 // 2 * 2变为           5 - 2 * 2           5 - 4             1 请记住//优先于 - ,所以5 // 2是 首先评估。