[英]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.