簡體   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