较小股息和较大除数的模数如何工作?

7 % 3 = 1 (remainder 1) 

如何
3 % 7 (余数?)

工作?

3/7的剩余部分是3 ..因为它有3次剩余3次,所以3%7 = 3

一样的方法。 商是0(3/7,丢弃小数部分)。 其余的则满足:

 (a / b) * b + (a % b) = a (3 / 7) * 7 + (3 % 7) = 3 0 * 7 + (3 % 7) = 3 (3 % 7) = 3 

这在C99§6.5.5,乘法运算符中定义。

7进入3? 零剩余3次。

商为零。 余数(模数)为3。

  • 7除以3是2,余数为1

  • 3除以7是0,余数为3

只要它们都是正数,其余部分就等于股息。 如果其中一个或两个都是负数,那么您会得到提醒, %实际上是余数运算符,而不是模数运算符。 模数总是正的,但余数可以是负的。

(7 * 0) + 3 = 3 ; 因此,剩下的就是3

a%q = r表示存在ax,因此q * x + r = a。

所以,7%3 = 1,因为3 * 2 + 1 = 7,

3%7 = 3,因为7 * 0 + 3 = 3

从概念上讲,我这样想。 根据定义,您的股息必须等于(quotient * divisor) + modulus

或者,求解模数: modulus = dividend - (quotient * divisor)

每当被除数小于除数时,商总是为零,这导致模数简单地等于被除数。

用OP的值来说明:

 modulus of 3 and 7 = 3 - (0 * 7) = 3 

用其他值来说明:

 1 % 3: 1 - (0 * 3) = 1 2 % 3: 2 - (0 * 3) = 2 

为了让我的大脑能够理解这类问题,我总是将它转换为真实世界的对象,例如,如果我将你的问题转换为3%7 。 我要将“3”表示为3英寸宽的金属孔 ,然后将“7”表示为7 英寸金属螺丝 。 你能将7英寸金属螺丝插入3英寸宽的金属孔吗? 当然不是,因此答案应该是3英寸的金属孔,即使你说有一个1000或一百万英寸宽的螺丝也没关系,它仍然是3,因为你可以插入多少次1000或者一百万英寸宽的螺丝到一个3英寸宽的金属孔? 零时间,对吗?