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