取模和取余0 概述1 模数2 余数3 对比4 演示C++演示PHP演示Go演示Python演示JavaScript演示取模和取余0 概述
模数(Modulo Operation)和余数(Complementation)不是完全一致的算法。
1 模数
定义如下:
商 = 被除数/除数,例如 -1.75 = 7 % -4
将商向负无穷大取整,例如 floor(-1.75) = -2。(注意此步骤是模数与余数的差异点)
计算模数,公式为 模数=被除数-取整后商除数,例如 -1 = 7 - -2-4,模数就是 -1。
2 余数
定义如下:
(步骤与模数一致,区别在第2步,商取整的时候)
商 = 被除数/除数,例如 -1.75 = 7 % -4
将商向0取整,例如 fix(-1.75) = -1。(注意此步骤是模数与余数的差异点)
计算余数,公式为 余数=被除数-取整后商除数,例如 7 - -1-4 = 3,余数就是 3。
3 对比
公式一致,都是:
c = a/b
取整c
计算 r = a-c*b
唯一的差异,在于取整商c的时候,模数向无穷小取整,而余数向0取整(也叫截断小数取整)。 无论商为正负。
4 演示
C++演示
gcc version 6.3.0
C++中运算符 是求余数。
标准库 的函数 也是求余数。
没有发现求模数的方法,知道的告知下。
PHP演示
php version 7.3.0
PHP中运算符 是求余数。
数学函数 也是求余数。
没有发现求模数的方法,知道的告知下。
Go演示
go version 1.11.1
Go中运算符 是求余数。
函数 也是求余数。
函数 用来计算模数,但有时得到的结果有些费解,研究之后再说明。
Python演示
python version 3.7.1
语言中运算符 是求模数。
函数 可以用来计算余数。
JavaScript演示
领取专属 10元无门槛券
私享最新 技术干货