0对任何数取余_Java别说取余(%)运算简单你真的会吗

一,直击现场

下面我来抛出几道题:

说明m是商,n是余数;

(1)正数%正数

3%2=m…….n

2%3=m…….n

(2)正数%负数或者负数%正数

-3%2=m…….n

3%-2=m…….n

-2%3=m…….n

2%-3=m…….n

(3)负数%负数

-3%-2=m…….n

-2%-3=m…….n

二,验证时刻

下面的结果没有商m只有余数n;有没有全部答对呢?没有的话来看总结吧

三,总结

(1)

3%2=1…….1

2%3=0…….1

正数除以正数:

商正余正

(2)

-3%2=-1…….-1

3%-2=-1…….1

-2%3=0…….-2

2%-3=0…….2

除数或者被除数其中之一为负数:

先按正数计算,商负余同被除数

(余数和被除数同号)你可能对结果0有疑问,你可以把它当成负0,因为被除数=除数*商+余数,所以被除数是希望商乘以除数的结果是接近它的(如最后一组数被除数2是希望-3乘以0后的结果是接近它的,所以可以理解为0是负0,这样就普遍适用了)

(3)

-3%-2=1…….-1

-2%-3=0…….-2

两个数都是负数:

先按正数计算,商正余负

(对于第二组可理解为0是正0,解释同上)

关于Java负数取余和取模的计算

今天和同事聊到Java的取模(mod)和取余(rem),发现我们常用的基本都是正数取余或取模,那带有负数的要怎么计算呢。

大部分的资料都会说:当x和y的正负相同,取余和取模结果相同,当x和y正负不同,取余结果的符号和x相同,取模结果的符号和y的符号相同。

但是这只是说了下结果的正负,要怎么计算呢???

假设:被除数 a 除数 b 商c 余数d 公式 a/b=c...d 可以变形为 d=a-b*c

那么关键就在于这个c取什么值。

举个栗子:a=5,b=-2 ,那么 5÷(-2)=-2.5

取模的时候,因为mod 函数采用了 floor 函数,floor函数是向下取整的,所以-2.5向下取整就是-3,那么d=5-(-2)*(-3)=5-6=-1。

取余的时候,因为rem 函数采用 fix 函数,fix函数是向0取整的,所以-2.5向0取整就是-2,那么d=5-(-2)*(-2)=5-4=1。

OK!晓得了!

关于 Java 运算中的求余 % 运算,这里负数到底怎么算。

刚好他们用代码做了举例,下面两张图的控制台都有输出结果。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值