Java别说取余(%)运算简单你真的会吗

 更新时间:2020年11月09日 17:38:30   作者:明月几时有666  
这篇文章主要介绍了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 运算中的求余 % 运算,这里负数到底怎么算。

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

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

相关文章

  • java判断今天,昨天,前天,不能用秒间隔的简单实例

    java判断今天,昨天,前天,不能用秒间隔的简单实例

    下面小编就为大家带来一篇java判断今天,昨天,前天,不能用秒间隔的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • springboot 之jpa高级查询操作

    springboot 之jpa高级查询操作

    这篇文章主要介绍了springboot 之jpa高级查询操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • SpringMVC中常用注解与使用方法详解

    SpringMVC中常用注解与使用方法详解

    这篇文章主要介绍了SpringMVC中常用注解与使用方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-05-05
  • Java多线程面试题之交替输出问题的实现

    Java多线程面试题之交替输出问题的实现

    本文主要介绍了Java多线程面试题之交替输出问题的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Java线程同步的四种方式详解

    Java线程同步的四种方式详解

    这篇文章主要介绍了Java线程同步的四种方式详解,需要的朋友可以参考下
    2023-02-02
  • MyBatis/mybatis-plus项目打印SQL的方法实现

    MyBatis/mybatis-plus项目打印SQL的方法实现

    SpringBoot项目中,经常需要打印SQL语句及其参数,本文就来介绍一下MyBatis/mybatis-plus项目打印SQL的方法实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • 一文带你搞懂Spring响应式编程

    一文带你搞懂Spring响应式编程

    相信响应式编程经常会在各种地方被提到。本篇就为大家从函数式编程一直到Spring WeFlux做一次简单的讲解,并给出一些示例,希望大家可以更好的理解响应式编程
    2022-07-07
  • Java 对象序列化 NIO NIO2详细介绍及解析

    Java 对象序列化 NIO NIO2详细介绍及解析

    这篇文章主要介绍了Java 对象序列化 NIO NIO2详细介绍及解析的相关资料,序列化机制可以使对象可以脱离程序的运行而对立存在,需要的朋友可以参考下
    2017-02-02
  • MyBatis学习教程(七)-Mybatis缓存介绍

    MyBatis学习教程(七)-Mybatis缓存介绍

    MyBatis缓存分为一级缓存和二级缓存一级缓存,本文给大家介绍mybatis缓存知识,非常不错具有参考借鉴价值,感兴趣的朋友一起学习吧
    2016-05-05
  • java如何接收和发送ASCII数据

    java如何接收和发送ASCII数据

    这篇文章主要介绍了java如何接收和发送ASCII数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09

最新评论