取模与取余

本文探讨了Java和Python中%运算符在处理取模和取余时的不同。在Java、C++和C#中%,运算结果是取余,可能为负数;而在Python中%,运算结果是取模,总是非负。理解这些差异对于避免编程错误至关重要。文章通过实例解释了取余和取模运算的原理,并指出在使用负数时需要注意的事项。
摘要由CSDN通过智能技术生成

今天学Java的循环链表,发现一个问题就是%的运算,老师一直在说取模取模,我一直在想什么是取模那不是取余吗,于是有了这篇文章。所以老师说的有问题在Java中%是取余。

此外,余数在数学中的定义是始终大于等于0的,而对于某些编程语言的取余运算不是按照上面的定义来执行的,因此才会出现余数小于0的情况。

先说结论:在C/C++,Java,C#中%是取余,而在python中是取模,为避免出错尽量不使用负数进行运算

取余(rem)和取模(mod)在被除数、除数同号时,结果是等同的,异号时不同。异号时取余结果符号跟被除数(分母)或(前面的数),取模结果符号跟除数(分子)或(后面的数)

取余运算在计算商值C时向0方向舍弃小数位,R是取余结果

C = A / B = 5 / 3 = 1.666666  靠近0取整,则C取 1 ,则R = A - C * B = 2
C = A / B = -7 / 2 = -3.5   ,靠近0取整,则C取-3,则R = A - C * B = -1

取模运算在计算商值C时向负无穷方向舍弃小数位,R是取模结果

C = A / B = 5 / 3 = 1.666666,向无穷小处取整,则C取1,则R = A - C * B = 2
C = A / B = -7 / 2 = -3.5   ,向无穷小处取整,则C取-4,则R = A - C * B = 1
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值