% 运算符的简介:
- 定义:通俗地讲即求一个数被另一个数除后剩余的余数。
区分:除、除以- a 除以 b => a / b,表示 a 被 b 除了,即 a 是被除数,b是除数。
- a 除 b => b / a,表示用 a 去除 b,这是被动关系,即 b 是被除数,a 是除数。
- 若 a % b 其中要求 a 和 b 必须为整形变量 ,例如 :int short 等;而不能是浮点数。且变量 b 必须为非零数。否则会出现模零错误。
- 符号问题, a % b 的结果只与 a 的符号有关,与 b 的无关。即 a % b 与 a % -b 的结果是一样的。若 a 为正整数,则结果为正数,若 a 为负整数,则结果为负数。
- 数论中的余数定义:范围为 [0 ~ b-1] ,但是取余运算符,只能保证 a % b 的结果的绝对值在上述范围内,而不能保证不出现负数,所以根据取模的特性,我们只需要在 a % b 的结果上在加一个除数,意思就是
( a % b + b ) % b
,这样因为 b % b 为0,对结果无影响。 - 综上:个人觉得,数论中的余数与计算机中的 % 运算符不是一个概念,但是如果计算机想要实现求余数的操作,只能通过 % 运算符来操作,至于正负号就要后期修正,这就和用算术平方根来算开方一样,都是后期符号需要修正。
取余运算的公式:(这种公式可以算大数求模,防止溢出)