除法运算 & 取模运算(Python3 vs C)
除法运算 \
C
1 | printf("%d\n", 4 / 3); // 1 |
符号正常,将小数部分舍去,结果为整数
Python3
1 | print(4 / 3); # 1.3333333333333333 |
符号正常,且小数部分保留(有精度限制)
取模运算 %
% 只能用于整型
以 a % b 为例,计算步骤一般为:
- 算出 c = a / b
- res = a - (b * c)
C
1 | printf("%d\n", 4 % 3); // 4 / 3 = 1, res = 4 - (3 * 1) = 1 |
Python3
1 | print(4 % 3); # 4 / 3 = 1.3333333333333333 => 1, res = 4 - (3 * 1) = 1 |
小结
- C : 在第 1 步算 c = a / b 时,舍去小数部分(即:向
0
方向取整) - Python : 在第 1 步算 c = a / b 时,向
无穷小
方向取整
- 由于想到在 Python 中,mod 函数的第 1 步采用 floor 函数,而 rem 函数的第 1 步采用 fix 函数
所以可以说 Python 中的
%
是取模,而 C 中的%
是取余差别就在第 1 步的处理方式上是用的
fix
还是floor
又多比较了几种编程语言
C、Node.js、Java 第 1 步都是 fix,
%
可称为取余运算唯独 Python 第 1 步是 floor,
%
可称为取模运算
关于取模运算的更多信息请参考这里
(完)