[英]Confused with % operator
我有這行簡單的代碼,顯示為余數5
:
Console.WriteLine(5 % 8);
%運算符顯示第一個數字和第二個數字相除后的余數。 因此, 5 / 8 = 0,625
。 上面代碼的提示不應該是6而不是5嗎? 在Visual Studio中進行測試時為什么會看到5?
8“干凈地”變成5了多少次? 零次。
5 / 8 = 0 (int division)
當您做5 ÷ 8
,剩下多少項目? 5。
5 % 8 = 5 (modulus division)
另一種解釋方法是:
你有5個蘋果。 請在8組中分配這些蘋果,但是您必須確保每個組都有相同數量的蘋果。
你不能那樣做。 您的蘋果少於分組數目。 你不能給任何人任何蘋果。
而且由於您沒有捐出任何蘋果,所以剩下 5個蘋果。 那是你的余數。
一切都遵循整數除法的基本規則。 對於整數x
和y
我們有:
q = x / y;
r = x % y;
基本規則是:
q
和r
都是整數 q * y + r == x
現在,您已經了解了基本規則,可以計算出5 / 8
和5 % 8
。
5 / 8
是整數。 確切的值為0.625
,但這不是整數,因此我們朝零取整並得到0
。 所以q
是0
。
要計算r,我們必須求解q * 8 + r = 5
,這很容易解決: r = 5
是解決方案。
(請注意,還有一些除零的基本規則,依此類推,您通常不必擔心。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.