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