数学吧 关注:929,746贴子:8,908,365
  • 2回复贴,共1
求助

余数是否是非负整数?

只看楼主收藏回复

我觉得可能需要讨论。
1.数学上数论肯定要求非负整数
2.编程语言,目前我知道C Python是允许余数是负数的,其他的语言不太清楚,希望有大佬可以解惑


IP属地:四川来自Android客户端1楼2025-06-28 20:57回复
    C语言c99及以后的标准将a%b定义为a-(a/b)*b,a/b是a除以b后向零取整,这时表达式的符号与a的符号一致。比如9%-4=9-(9/-4)*-4=9-(-2)*-4=1,
    -9%4=-9-(-9/4)*4=-9-(-2)*4=-1。这种定义和cpu内部运算直接挂钩,编译成机器码更简洁。用汇编角度讲就是,idiv ebx指令执行后,edx:eax作为被除数,ebx作为除数,cpu用既定的一套固定方法进行除法计算,给edx寄存器更新的值就是c语言定义的a%b。python应该是需要额外做判断,因为我记得python里余数需要和除数的符号一致,汇编里就是多了一个判断,如果余数和除数符号一致就jz,不一致就给它多加一个除数。


    IP属地:山西来自Android客户端2楼2025-06-28 22:52
    收起回复