当前位置: 首页 > news >正文

Java中的取余与取模运算:概念、区别与实例详解

Java中的取余与取模运算:概念、区别与实例详解

  • 引言
  • 一、取余运算(Remainder Operation)
  • 二、取模运算(True Modulo Operation)
  • 三、区别比较
  • 四、实战应用


引言

        在Java编程中,当我们提到“取余”和“取模”运算时,通常会想到 % 这个运算符。然而,虽然Java开发者常常将二者混用,但实际上Java标准库中有两种不同的行为分别对应着传统的数学意义上的“取模”和我们常说的“取余”。

一、取余运算(Remainder Operation)

Java中的 % 运算符执行的是取余操作。它计算的是两个整数相除后的余数。具体规则如下:

// 示例1
int a = 7;
int b = 3;
int remainder = a % b; // remainder = 1// 示例2(考虑负数情况)
int negativeA = -7;
int sameB = 3;
int negativeRemainder = negativeA % sameB; // negativeRemainder = -1

        在上述例子中,7 % 3 的结果是 1,这是因为7除以3后余1。而对于 -7 % 3,结果是 -1,这是因为负数的余数保持了与被除数相同的符号。

二、取模运算(True Modulo Operation)

        在数学领域,取模运算确保了结果的正负性取决于除数而非被除数。Java标准库提供了一个函数 Math.floorMod() 来实现真正的取模运算,它的结果总是具有与除数相同的正负性:

import java.lang.Math;// 示例3
int modularResult = Math.floorMod(7, 3); // modularResult = 1 (与取余运算相同)// 示例4(对比取余运算)
int modularNegativeResult = Math.floorMod(-7, 3); // modularNegativeResult = 2

        在这个例子中,Math.floorMod(-7, 3) 的结果是 2,这是因为取模运算时,商朝负无穷方向舍入,即 -7 / 3 的整数商是 -2,然后根据模运算的定义得出余数 2

三、区别比较

取余运算和取模运算的主要差异在于对待负数的方式:

  • 取余运算 (%):其结果的符号依赖于被除数,且保证结果的绝对值小于除数的绝对值。
  • 取模运算 (Math.floorMod()):其结果的符号与除数相同,同样保证余数值的大小小于除数。

四、实战应用

        实际编程中,理解这两个概念尤为重要,特别是在循环、数组索引、密码学等领域。例如,在制作周期性的动画效果时,正确使用取模可以避免数组越界等问题,同时在处理负数范围内的循环边界时,取模运算能够带来预期的循环效果。

        总结起来,尽管Java中的 % 运算符通常满足大多数日常编程需求,但在需要符合数学意义上严格取模定义的情况下,应优先选择 Math.floorMod() 方法。希望这篇文章能帮助你更好地理解和应用Java中的取余与取模运算,并在实际项目中做出正确的决策。

相关文章:

Java中的取余与取模运算:概念、区别与实例详解

Java中的取余与取模运算:概念、区别与实例详解 引言一、取余运算(Remainder Operation)二、取模运算(True Modulo Operation)三、区别比较四、实战应用 引言 在Java编程中,当我们提到“取余”和“取模”运算…...

Excel制作甘特图

使用Excel表格制作甘特图,可根据任务开始时间和结束时间自动计算工时,并自动用指定颜色填充横道图。 1.新建Excel文档,先设置项目基本信息,包括表格名称,这里设置为“**项目甘特图”;然后添加任务序号列&a…...

Dapr(一) 基于云原生了解Dapr

(这期先了解Dapr,之后在推出如何搭建Dapr,以及如何使用。) 目录 引言: Service Mesh定义 Service Mesh解决的痛点 Istio介绍 Service Mesh遇到的挑战 分布式应用的需求 Multiple Runtime 理念推导 Dapr 介绍 Dapr 特性 Dapr 核心…...

RESTful的优点

优点 1.通过url对资源定位,语义清晰; 2.通过HTTP谓词表示不同的操作,接口自描述; 3.可以对GET、PUT、DELETE请求重试(幂等的); 4.可以对GET请求做缓存; 5.通过HTTP状态码反映服务器端…...

网络检测与监控

1.IP sla 服务等级质量检测,思科私有,提供商与用户之间的协议 可以对带宽、延迟、丢包率、网络抖动进行检测 (1)针对icmp进行检测: r1(config)#ip sla 1 r1(config-ip-sla)#icmp-echo 12.12.12.2 source-ip 12.12…...

基于架构的软件开发方法_1.概述和相关概念及术语

1.体系结构的设计方法概述 基于体系结构的软件设计(Architecture-Based Software Design,ABSD)方法。ABSD方法是由体系结构驱动的,即指由构成体系结构的商业、质量和功能需求的组合驱动的。 使用ABSD方法,设计活动可以…...

读所罗门的密码笔记07_共生思想(中)

1. 在人工智能系统中建立信任 1.1. 人类的大脑容易被个人倾向、干扰因素和确认偏误所影响 1.2. 古莱说,然而,从不同的角度去思考事实、花更长时间来做决策的能力,可能会让人类拥有“密探”一般的智慧 1.3. 我们可以对决策进行批判性思考&a…...

目标检测——工业安全生产环境违规使用手机的识别

一、重要性及意义 首先,工业安全生产环境涉及到许多复杂的工艺和设备,这些设备和工艺往往需要高精度的操作和严格的监管。如果员工在生产过程中违规使用手机,不仅可能分散其注意力,降低工作效率,更可能因操作失误导致…...

Linux/Ubuntu/Debian 终端命令:设置文件/目录权限和组

更改文件权限&#xff1a; chmod filename&#xff1a;根据指定的权限更改文件的权限。 例如&#xff1a; chmod ux filename # 为文件所有者添加执行权限 递归更改目录权限&#xff1a; chmod -R <说明> 目录名称&#xff1a;递归更改目录及其内容的权限。 例如&#xf…...

QA测试开发工程师面试题满分问答3: python的深拷贝和浅拷贝问题

在 Python 中&#xff0c;深拷贝&#xff08;deep copy&#xff09;和浅拷贝&#xff08;shallow copy&#xff09;是用于创建对象副本的两种不同方式。 浅拷贝是创建一个新的对象&#xff0c;该对象与原始对象的内容相同&#xff08;包括内部嵌套对象的引用&#xff09;&…...

Spire.PDF for .NET【文档操作】演示:合并 PDF 文件并添加页码

搜索了这么多有关 PDF 合并的信息后&#xff0c;很容易发现&#xff0c;无论您在线合并 PDF 文件还是使用 C#/VB.NET 来实现此任务&#xff0c;您都无法逃避对 PDF 文件安全等一些重要问题的担忧&#xff0c;因此需要花费多少时间或者合并后的文件是否支持打印页码等等。不过&a…...

VMware使用PowerCLI 修改分布式虚拟交换机的默认上联接口为LAG

简介 创建VMware 分布式交换机vDS 并配置 LACP接口时&#xff0c;然后创建新的默认分布式端口组不会默认使用LACP的上联接口。这意味着当创建新的端口组时&#xff0c;不可避免地会导致没手动修改上联端口的问题&#xff0c;导致网络不通&#xff0c;因为它们无可用的上联端口…...

什么是EDM邮件推广营销?

电子邮件作为最古老的互联网沟通工具之一&#xff0c;凭借其无可比拟的直达性、个性化潜力与高投资回报率&#xff0c;始终占据着企业营销策略的核心地位。随着人工智能技术的革新应用&#xff0c;云衔科技以其前瞻视野与深厚技术底蕴&#xff0c;倾力打造了一站式智能EDM邮件营…...

NoSQL之 Redis配置

目录 关系数据库与非关系型数据库 关系型数据库&#xff1a; ●非关系型数据库 关系型数据库和非关系型数据库区别&#xff1a; &#xff08;1&#xff09;数据存储方式不同 &#xff08;2&#xff09;扩展方式不同 对事务性的支持不同 非关系型数据库产生背景 Redis简介…...

Android U user+root实现方案

背景 由于项目&#xff08;MTK平台&#xff09;上要实现userroot的版本&#xff0c;供特殊用户使用。Android T上的方案无效&#xff0c;经历了各种搜索查看资料&#xff0c;和bsp大佬一起通宵奋战&#xff0c;整出了方案。梳理记录下&#xff0c;有需要的同学可以参考。 Root…...

CSS3 Transform变形理解与应用

Transform&#xff1a;对元素进行变形&#xff1b; Transition&#xff1a;对元素某个属性或多个属性的变化&#xff0c;进行控制&#xff08;时间等&#xff09;&#xff0c;类似flash的补间动画。但只有两个关键贞。开始&#xff0c;结束。 Animation&#xff1a;对元素某个属…...

语音克隆技术浪潮:探索OpenAI Voice Engine的奇妙之旅

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

将Python程序打包为Windows安装包

本文使用创作助手。 如果你想将Python程序打包为Windows安装包&#xff0c;你可以使用NSIS&#xff08;Nullsoft Scriptable Install System&#xff09;工具。NSIS是一个免费的Windows安装包创建工具。 以下是使用NSIS将Python程序打包为Windows安装包的步骤&#xff1a; 首…...

一个基于大数据的派单管理系统

通常需要处理大量的订单数据&#xff0c;并确保这些数据能够在各个相关部门之间高效、准确地传递。这样的系统不仅有助于提高派单效率&#xff0c;还能优化资源配置&#xff0c;减少不必要的浪费。以下是一个包含所需元素的系统设计方案概述&#xff1a; 数据结构 订单号&…...

【单片机 5.3开关检测】

文章目录 前言一、5.3开关检测1.1没按键按下的1.2有按键按下的 二、改进1.改进 三、独立键盘3.1为什么要取反3.2 实用的按键 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 课程需要&#xff1a; 提示&#xff1a;以下是本篇文章正文内容&#xf…...

每天五分钟计算机视觉:如何基于滑动窗口技术完成目标的检测?

汽车检测算法 现在我们想要构建一个汽车检测算法,我们希望输入到算法中一张图片,算法就可以帮助我们检测出这张图片中是否有汽车。 数据集 首先创建一个标签训练集,x是样本,y是标签。我们的训练集最好是被剪切过的图片,剪掉汽车以外的部分,使汽车居于中间位置,就是整张…...

wpf ContextMenu

ContextMenu上下文菜单 ContextMenu 在 WPF 中是一个非常有用的控件&#xff0c;它提供了一个在用户执行特定操作&#xff08;如右键点击&#xff09;时显示的菜单。ContextMenu 可以附加到几乎所有的 WPF 控件上&#xff0c;使得当用户与这些控件互动时&#xff0c;能够提供一…...

增加网站搜索引擎排名的6个准则

怎样提高网站排名首页 在竞争激烈的网络世界中&#xff0c;网站的排名对于吸引流量和提升曝光至关重要。登上搜索引擎结果页面的首页&#xff0c;意味着更多的曝光和点击率。以下是一些方法&#xff0c;可以帮助您提高网站在搜索引擎中的排名&#xff0c;让其跻身首页&#xf…...

【数据库索引】【面试题】【SQL】什么时候不需要用索引?

在数据库查询优化中,索引是一种重要的工具,可以提高查询性能。然而,并不是所有的情况下都适合使用索引。 以下是一些情况下(收集整理)不建议使用索引: 更新频繁的列:索引会占用数据库资源,当列经常被更新时,索引可能会变得过时,导致查询性能下降。 小数值类型:对于…...

RISC-V/ARM mcu OpenOCD 调试架构解析

Risc-v/ARM mcu OpenOCD 调试架构解析 最近有使用到risc-v的单片机&#xff0c;所以了解了下risc-v单片机的编译与调试环境的搭建&#xff0c;面试时问到risc-v的调试可参看以下内容。 risc-v根据官方的推荐&#xff0c;调试器服务是选择OpenOCD&#xff0c;DopenOCD(开放片上…...

HackTheBox-Mist

整体思路 端口扫描->Pluck CMS组件文件读取漏洞->文件上传获取shell->创建指向exe的快捷方式来提权-> 信息收集&端口利用 namp -sSVC 10.10.11.17目标只开放了80端口&#xff0c;将mist.htb加入到hosts文件后&#xff0c;访问mist.htb Pluck CMS文件读取 在…...

游戏引擎中的声音系统

一、声音基础 1.1 音量 声音振幅的大小 压强p&#xff1a;由声音引起的与环境大气压的局部偏差 1.2 音调 1.3 音色 1.4 降噪 1.5 人的听觉范围 1.6 电子音乐 将自然界中连续的音乐转换成离散的信号记录到内存中 采样 - 量化 - 编码 香农定理&#xff1a;采样频率是信…...

【WPF应用29】WPF中的ComboBox控件详解与应用示例

在Windows Presentation Foundation&#xff08;WPF&#xff09;应用程序开发中&#xff0c;ComboBox控件是一个非常重要的基础控件&#xff0c;它提供了一个下拉列表&#xff0c;允许用户从预定义的选项中选择一个值。ComboBox控件结合了文本框和列表框的功能&#xff0c;既能…...

Unity UGUI之Text组件基础认识

Text组件用于在游戏中显示文本。 下面来细看下它的基本信息。 一、基本属性&#xff1a; 如上图所示&#xff0c;即为Text组件的一些基本属性&#xff0c;其中&#xff0c; Text&#xff1a;要显示的文本内容。Font&#xff1a;文本所使用的字体。Font Style&#xff08;字体…...

LeetCode 2810.故障键盘:双端队列模拟

【LetMeFly】2810.故障键盘&#xff1a;双端队列模拟 力扣题目链接&#xff1a;https://leetcode.cn/problems/faulty-keyboard/ 你的笔记本键盘存在故障&#xff0c;每当你在上面输入字符 i 时&#xff0c;它会反转你所写的字符串。而输入其他字符则可以正常工作。 给你一个…...

上海网站域名备案处/搜索词分析

京东商品爬取仅供学习一.使用seleniumfrom selenium import webdriverfrom selenium.webdriver.common.keys import Keys #键盘按键操作from selenium.webdriver.support import expected_conditions as ECimport timedef get_goods(driver):try:goodsdriver.find_elements_by_…...

wordpress post_id/北京网站推广排名服务

这堪称是史上最强的相机植入式广告。在1000泰铢纸币上&#xff0c;我们可以看到泰王拉玛九世陛下手中拿着相机的画面。令人好奇的是&#xff0c;他手中的相机会是什么型号呢&#xff1f; 实际上&#xff0c;这个话题前两年在日本网友中就已引起热烈讨论&#xff0c;后来有人称钞…...

浙江金华网站建设/整站优化关键词排名

今天我们推荐来自申港证券的最新车联网报告——《车联网发展迎来关键政策窗口&#xff0c;示范区建设如火如荼》&#xff0c;下面我们一起来看看报告部分内容。1、车联网产业趋于成熟2020年是重要政策窗口1.1 定义&#xff1a;从标准和应用的角度审视车联网的内涵从不同的主体出…...

网页设计制作网站开发建设新手建站基础入门到精通视频教程/汕头seo推广优化

Redis 在 3.2 版本以后增加了地理位置 GEO 模块&#xff0c;意味着我们可以使用 Redis 来实现摩拜单车「附近的 Mobike」、美团和饿了么「附近的餐馆」这样的功能了。 用数据库来算附近的人地图元素的位置数据使用二维的经纬度表示&#xff0c;经度范围 (-180, 180]&#xff0c…...

做ic销售的各种网站/重庆网站制作公司哪家好

https://blog.tengshe789.tech/2018/08/04/springboot/?hmsrtoutiao.io&utm_mediumtoutiao.io&utm_sourcetoutiao.io 这是一篇优雅的使用...

专门做店铺转让的网站/竞价推广账户竞价托管收费

经过几个实验,我来到了一个令人满意的解决方案,这也保留了顶部可见项目的细滚动位置.事实上,需要保存和恢复三个不同的信息&#xff1a;列表状态(例如哪些组被展开),第一个可视项目的索引以及它的微滚动位置.不幸的是,似乎只有第一个被可扩展列表视图的onSaveInstanceState方法…...