当前位置:网站首页 > Java教程 > 正文

java取模教程视频



Java 中常见的取模和取余(求余)计算,在我们日常的很多业务领域都有用到。比如当我们做数据加密时,密码学中不同的加密方案底层会采用不同的模运算来决定其复杂度;做游戏的同学游戏引擎中的取余求最高点;银行金融系统计算中间件开发;随机函数、一致性Hash等等。

问了办公室同样做开发几年的同事,居然对两者区别毫不知晓。转问办公室另一即将科班毕业研究生,对概念也是模糊不清。于是决定总结一下,写下这篇文章。

通常取模运算也叫取余运算,它们返回结果都是余数 .remmod 唯一的区别在于:

当 x 和 y 的正负号一样的时候,两个函数结果是等同的;当 x 和 y 的符号不同时,rem 函数结果的符号和 x 的一样,而 mod 和 y 一样。

这是由于这两个函数的生成机制不同,rem 函数采用 fix 函数,而 mod 函数采用了 floor 函数(这两个函数是用来取整的,fix 函数向 0 方向舍入,floor 函数向无穷小方向舍入)。 rem(x,y)命令返回的是 x-n.y,如果 y 不等于 0,其中的 n = fix(xhttps://www.cnblogs.com/doondo/p/y),而 mod(x,y) 返回的是 x-n.y,当 y 不等于 0 时,n=floor(xhttps://www.cnblogs.com/doondo/p/y)

卧槽~ 这是什么鬼 是不是觉得看不懂,下面涛哥用简单的示例来进行介绍,给你整得明明白白的。

我们就创建一个测试类,来进行示例说明

  • 当 x 和 y 的正负号一样的时候,两个函数结果是等同的
     

    输出结果:

     
  • 当 x 和 y 的符号不同时,rem 函数结果的符号和 x 的一样,而 mod 和 y 一样
     

    输出结果:

     
 

为什么遵循的是这样的原则?

在matlab中,关于取余和取模是这么定义的:

  • 当y≠0时:
    • 取余:rem(x,y)=x-y.*fix(xhttps://www.cnblogs.com/doondo/p/y)
    • 取模:mod(x,y)=x-y.*floor(xhttps://www.cnblogs.com/doondo/p/y)

    其中,fix()函数是向0取整,floor()函数是向负无穷取整

    以前边的运算为例:

    7/(-3)=-2.3,在这个运算中,x为7,y为-3,分别调用fix()和floor()两个函数,得到结果是:

    fix(-2.3)=-2

    floor(-2.3)=-3

    所以,rem(7,-3)=1,mod(7,-3)=-2

  1. 取余,遵循尽可能让商向0靠近的原则,取模,遵循尽可能让商向负无穷靠近的原则
  2. 符号相同时,两者不会冲突;符号不同时,两者会产生冲突。
  3. 取余运算结果的符号和 被除数 一致,取模运算结果的符号和 除数 一致

  • 上一篇: java食品教程
  • 下一篇: 最新黑马Java教程
  • 版权声明


    相关文章:

  • java食品教程2024-12-31 23:26:02
  • java按钮 教程2024-12-31 23:26:02
  • java全套训练教程2024-12-31 23:26:02
  • java调整教程2024-12-31 23:26:02
  • win10java安装教程2024-12-31 23:26:02
  • 最新黑马Java教程2024-12-31 23:26:02
  • java教程注释2024-12-31 23:26:02
  • 菜鸟教程 java配置2024-12-31 23:26:02
  • 兄弟连java教程122024-12-31 23:26:02
  • java spark 教程 pdf2024-12-31 23:26:02