繁体   English   中英

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

[英]Implementing the modulo operator as a function in C

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

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

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

干得好:

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

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

简单:

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

(C99标准,6.5.5 / 6)。

红利/除数=商数

公式(在Python 3中)如下:

Modolus = Divident - Dividend // Divisor * Divisor

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

模数= 5 - 5 // 2 * 2变为5 - 2 * 2 5 - 4 1请记住//的优先级高于 - ,因此首先评估5 // 2。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM