python取模?C、java求余?-3%10在不同语言中结果不一样?一文弄清!

文章详细解析了C、JAVA和Python中整型变量的求余运算和取模运算的区别。在C和JAVA中,求余运算遵循向0方向舍入,而Python则向负无穷方向舍入。这导致了在运算结果符号上的差异。此外,还提到了不同语言环境下%运算符的含义以及数学中的向上取整、向下取整和向零取整三种取整方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对整型变量a、b来说,求余运算和取模运算的公式都是:

1.求整数商:n=a/b;

2.计算余数或者模:y=a-n*b。

但是,两种运算在第一步时就产生了不同的结果,因为:求余运算在取n的值时,向0方向舍入;而取模运算在计算n的值时,向负无穷方向舍入。

接下来举例说明:-3%10

第一、在C、JAVA中:

-3%10=-3

解释:如上图代码注释

附加:因为-3除以10等于-0.3,又因为C、JAVA中是向0方向舍入,所以整数商是0

(上图是java的取整为0)

所以在C、JAVA中,-3%10=-3-(0)*10=-3

第二、在Python中:

-3%10=7

解释:如上上图

附加:因为-3除以10等于-0.3,又因为python中是向负无穷方向舍入,所以整数商是-1

(以上图片是python的取整运算,为-1)

所以在python中-3%10=-3-(-1)*10=7

好的,接下来来归纳一下:

1a和b符号相同时,求余和取模结果相同;

2a和b符号不同时,求余结果的符号和a相同,取模结果的符号和b相同。

这里我还贴切说明一下:

1就是说在C、JAVA中,余数符号与被除数符号一致;

2在python中, 余数符号与除数符号一致。

另外不同语言环境下“%”运算符的含义也不同:

1c/c++、Java为求余

2Python为取模

另外一点小补充:

在数学上的取整方式是分为三类的哦:向上取整,向下取整,向零取整

1向上取整:向+∞方向取最接近精确值的整数。

在这种取整方式下,5 / 3 = 2, -5 / -3 = 2, -5 / 3 = -1, 5 / -3 = -1,-3 / 10 =0

2向下取整:向-∞方向取最接近精确值的整数。

在这种取整方式下,5 / 3 = 1, -5 / -3 = 1, -5 / 3 = -2, 5 / -3 = -2, -3 / 10 = -1

3向零取整:向0方向取最接近精确值的整数。

在这种取整方式下,5 / 3 = 1, -5 / -3 = 1, -5 / 3 = -1, 5 / -3 = -1,-3 / 10 =0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值