原因如下:python计算器中,mod运算原则是尽量使商最小,比如11 % -5,商为-2(10 / -5) 或 -3(15 / -5),按照取最小的原则,结果为-3,则余数为-4;

而C计算器中,mod运算原则,mod运算原则是尽量使商最大,比如11 % -5,商为-2(10 / -5) 或 -3(15 / -5),按照取最大的原则,结果为-2,则余数为1.

换而言之,负数取余运算的区别在于除法的取整方向不同,C语言从C99开始规定向0取整,而python规定向负无穷取整。

由此可以推出,Python中取余结果的符号由除数决定,而C中由被除数决定。

Python中mod运算的两个操作数可以是实型;C中两个操作数只能为整型。

 posted on 2020-03-13 15:19  20191113林紫欣  阅读(374)  评论(0编辑  收藏  举报