Java取余与求模

Java取余与求模区别 对于整型数 x y 来说 取模运算或者求余运算的方法都是 1 求整数商 intr x y 2 计算模或者余数 intresult x y r 求模运算和求余运算在第一步不同 如果 r 的值时负数且不为整数时 取余运算在取 r 的值时 向 0 放行舍入 fix 函数 而取模运算在计算 r 的值时 向负无穷方向舍入 floor 函数 如果 r 为整数则没有区别 例如 x 5 y 3 r 5 3 1 66 取余时 r 1

两者的区别:

对于整型数x,y来说,取模运算或者求余运算的方法都是:

1.求整数商:int r = x / y;

2.计算模或者余数:int result = x – y * r;

求模运算和求余运算在第一步不同:如果r的值时负数且不为整数时,取余运算在取r的值时,向0放行舍入(fix()函数);而取模运算在计算r的值时,向负无穷方向舍入(floor()函数);如果r为整数则没有区别。

 

例如:

x = -5 , y = 3 , r = -5 / 3 = -1.66

 

取余时,r = -1 ,result = -5 – 3 * (-1)= -2

 

取模时,r = -2 ,result = -5 -3 * (-2)= 1

 

Java程序示例:

public class test {     public static void main(String[] agrs){         System.out.println("x=-5,y=3取余结果为:"+(-5)%3);         System.out.println("x=-5,y=3取模结果为:"+Math.floorMod(-5,3));         System.out.println("x=5,y=3取余结果为:"+5%3);         System.out.println("x=5,y=3取模结果为:"+Math.floorMod(5,3));     } }

 

运行结果:

x=-5,y=3取余结果为:-2 x=-5,y=3取模结果为:1 x=5,y=3取余结果为:2 x=5,y=3取模结果为:2

 

 

代码实现:

求result:

public static int floorMod(int x, int y) {     int r = x - floorDiv(x, y) * y;     return r; }

求r:

public static int floorDiv(int x, int y) {     int r = x / y;     // if the signs are different and modulo not zero, round down     if ((x ^ y) < 0 && (r * y != x)) {         r--;     }     return r; }

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212636.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午7:37
下一篇 2026年3月18日 下午7:37


相关推荐

  • addslashes和stripslashes函数

    addslashes和stripslashes函数addslashes()函数返回在预定义字符之前添加反斜杠的字符串。预定义字符是:单引号(’)双引号(”)反斜杠(\)NULLecho”Who’sBillGates?<br>”;echoaddslashes(“Who’sBillGates?”)结果:Who’sBillGates?Who\’sBill…

    2022年10月21日
    4
  • mysql 快速 修改 表名

    mysql 快速 修改 表名2019独角兽企业重金招聘Python工程师标准>>>…

    2022年5月6日
    51
  • c语言 伪随机数程序,C语言的伪随机数

    c语言 伪随机数程序,C语言的伪随机数一直想好好的系统的学习一下 C 语言的伪随机数 今天终于逮到机会了伪随机数 C 语言中有可以产生随机数据的函数 需要添加 stdlib h 和 time h 头文件 首先在 main 函数开头加上 srand unsigned time NULL 先来介绍一下 srand 头文件 定义函数 voidsrand unsignedints 函数说明 srand 用来设置 rand 产生随机数时的随机数种子

    2026年2月11日
    2
  • OpenClaw“小龙虾”深度解析:60天碾压Linux的AI智能体,从原理到搞定本地部署【Windows系统 + 接入飞书】

    OpenClaw“小龙虾”深度解析:60天碾压Linux的AI智能体,从原理到搞定本地部署【Windows系统 + 接入飞书】

    2026年3月13日
    2
  • ONF组织的SDN架构文档——概述(一)

    ONF组织的SDN架构文档——概述(一)1 适用范围 nbsp nbsp nbsp nbsp nbsp 这个文档描述了 SDN 架构 文档的目的是为 ONF 工作组未来的工作做详细指导和说明 同时也可以作为 ONF 对外交流的一个参考文档 它的姊妹文档 框架文档 描述了 ONF 想要达到的设计目标 此文档只是从一个较高的角度描述了达到此目标的一些方法 nbsp nbsp nbsp nbsp SDN 架构从一个较高的角度出发 给控制器指定了参考点和接口 架构描述了大量 SDN 控制器和 NE networke

    2026年3月19日
    2
  • 三角函数公式和图像大全[通俗易懂]

    三角函数公式和图像大全[通俗易懂]初等函数的图形幂函数的图形指数函数的图形对数函数的图形三角函数的图形反三角函数的图形各三角函数值在各象限的符号三角函数的性质反三角函数的性质三角函数公式两角和公式倍角公式三倍角公式半角公式和差化积积化和差诱导公式万能公式其它公式其他非重点三角函数双曲函数公式一…

    2025年11月14日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号