Java整数相加溢出怎么解决
发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,这篇文章主要介绍"Java整数相加溢出怎么解决",在日常操作中,相信很多人在Java整数相加溢出怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Java整数相加溢
千家信息网最后更新 2024年11月27日Java整数相加溢出怎么解决在之前刷题的时候遇见一个问题,需要解决int相加后怎么判断是否溢出,如果溢出就返回Integer.MAX_VALUE JDK8已经帮我们实现了Math下,不得不说这个方法是在StackOverflow找到了的,确实比国内一些论坛好多了~ 注意 long和int是不一样的
这篇文章主要介绍"Java整数相加溢出怎么解决",在日常操作中,相信很多人在Java整数相加溢出怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Java整数相加溢出怎么解决"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
问题
解决方案
加法
public static int addExact(int x, int y) { int r = x + y; // HD 2-12 Overflow iff both arguments have the opposite sign of the result if (((x ^ r) & (y ^ r)) < 0) { throw new ArithmeticException("integer overflow"); } return r; }
减法
public static int subtractExact(int x, int y) { int r = x - y; // HD 2-12 Overflow iff the arguments have different signs and // the sign of the result is different than the sign of x if (((x ^ y) & (x ^ r)) < 0) { throw new ArithmeticException("integer overflow"); } return r; }
乘法
public static int multiplyExact(int x, int y) { long r = (long)x * (long)y; if ((int)r != r) { throw new ArithmeticException("integer overflow"); } return (int)r; }
public static long multiplyExact(long x, long y) { long r = x * y; long ax = Math.abs(x); long ay = Math.abs(y); if (((ax | ay) >>> 31 != 0)) { // Some bits greater than 2^31 that might cause overflow // Check the result using the divide operator // and check for the special case of Long.MIN_VALUE * -1 if (((y != 0) && (r / y != x)) || (x == Long.MIN_VALUE && y == -1)) { throw new ArithmeticException("long overflow"); } } return r; }
到此,关于"Java整数相加溢出怎么解决"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
整数
学习
问题
方法
更多
帮助
实用
接下来
乘法
减法
加法
文章
方案
时候
是在
理论
知识
篇文章
网站
解决方案
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
同心乐橙网络技术
数据库主键对于顺序性的要求
深圳大学网络安全考研
方舟服务器管理员怎么用代码
光遇游戏服务器是什么怎么填
远程连接服务器连接ip
vs2008数据库连接
上海熙邻网络技术有限公司笔试
会会计和计算机网络技术
福建通信管理局网络安全员
猎鹄互联网科技有限公司
网络安全主要类型包括
社区网络安全知识宣传片
湖北省第十次网络安全答题
软件开发面试问题大全
虹口区媒体软件开发价格查询
互联网领先科技成果发布会
软件开发公司加班管理制度
四川省委网络安全办公室向畅
给数据库做界面
地理信息系统软件开发教程
网络技术视听主持人
辅料数据库
数据库简版工具
湘潭软件开发公司电话
政治网络安全笔记
云南省网络安全等级保护大会
海康信号控制系统数据库
软件开发升职
软件开发会涉及什么知识