负数除法的定义

对于 -1/2 而言,其实是有很多种答案的,比如 -1 = 2*0 - 1, -1 = 2*-1 + 1。

在数学上,余数指整数除法中被除数未被除尽部分,且余数的取值范围为0到除数之间(不包括除数)的整数。商在数学运算中是与除数相乘后,最大的不超过被除数的数。

因此,从数学意义上, -1/2 商应该是-1, 余数应该是+1的。

但是,在C/C++里面,商是向0方向取最接近的整数,余数可以是负数。所以,编程语言里面,-1/2 商应该是 0 , 余数应该是 -1的。

C++的%是数学上的取余,商向0取整。而取模是商向负无穷取整。

取余
rem(-3,-2) 余数是 -1  商是 1
rem(3,-2) 余数是 1 商是 -1
rem(-3,2) 余数是 -1 商是 -1

取模
mod(-3,-2) 模是 -1  商是 1
mod(3,-2) 模是 -1 商是 -2
mod(-3,2)  模是 1 商是 -2

当除数与被除数的符号不相同时,模与余数的结果不同,C++/JAVA/C里面都是取余数,python是取模。 具体说,rem结果的符号与被除数相同;mod结果的符号与除数相同。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值