问题的发现
java中的a%b和python中的a%b在a,b符号不同时结果不同:
- java
int a = -11;
int n = 7;
int r = a % n;
System.out.println(r); // 结果是-4
- python
a = -11
n = 7
r = a % n
print(r) # 结果是3
原因
对于整型数a,b来说,取模运算或者求余运算的方法都是:
1.求整数商: c = a/b
2.计算模或者余数: r = a - c*b
求余和取模的区别在第一步,求余c向0方向舍入(-1.571→\rightarrow→-1),取模c向无穷小方向舍入(-1.571→\rightarrow→-2)
因此a,b符号一致时,求余和取模结果一致,符号不同时结果不同
总结
java中的%表示求余,python中的%表示取模
Java与Python取模运算结果差异解析
博客指出Java中的a%b和Python中的a%b在a、b符号不同时结果不同。介绍了整型数取模或求余运算方法,求余和取模区别在于求整数商时的舍入方向。最后总结Java的%是求余,Python的%是取模。
1109

被折叠的 条评论
为什么被折叠?



