取模(Mod)和取余(%)的 区别 和 转化(超详细解释)

取模和取余是两个东西来的(此处用java语言来解释)

在了解取模和取余的区别之前,首先分别对两个计算的原理解释一下!

首先假设有两个int类型变量 A和B。

int A=-3;

int B=5;

再进行如下操作

取余:

代码实现:

        int A=-3;
        int B=5;
        System.out.println(A%B);
//        结果是-3

%(取余号)计算原理:

补充:里面的n就是 A除B.

 注意:取整的方式理解很重要,等下方便理解转换原理。

好了将完取余的原理之后,我们再来学习取模的原理

取模(mod):

代码实现:

        int A=-3;
        int B=5;
        System.out.println(Math.floorMod(A,B));
//        结果为2

Math.floorMod(),这个是取模计算的方法使用,

它计算原理:

取余和取模的区别:

造成结果不一样,就在于取整得方式不同。

 由于A除B是负数,取余应该是向上取整,而取模是向下取整,这就导致两个结果不同了

但是,当A除B是正数的时候,取余和取模都是向下取整,那么这两个结果是相同了,验证一下:

代码实现:

把A的-3改为3  则A除B就变为整数了

        int A=3;
        int B=5;
        System.out.println(A%B);
//        结果为3
        System.out.println(Math.floorMod(A,B));
//        结果也3

手动计算:

 取余转换成取模(前提是   |A| <|B|    )前提条件是保证A的绝对值比B的绝对值小

改变的思路:

再这之前我们已经知道了,导致取余和取模得数不同的原因找到了

 只需要揪着这个点去想出转化方法,只需要在取余的式子,稍微改动一下就可以了

代码实现

用回最开始的 A除B为负数的

        int A=-3;
        int B=5;
        System.out.println((A+B)%B);
//        结果为2
        System.out.println(Math.floorMod(A,B));
//        结果也2

能发现我在哪里做了改动了吗,就是在A的基础上加多了一个B,就成功实现了把取余改成了取模了

原理:

这个转化的使用 

条件:保证:   |A| <|B| 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值