Java整数相加溢出怎么解决
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,这篇文章主要介绍"Java整数相加溢出怎么解决",在日常操作中,相信很多人在Java整数相加溢出怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Java整数相加溢
千家信息网最后更新 2024年09月22日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安全错误
数据库的锁怎样保障安全
数据库创建id自增
前后端数据库之间的协议
宿州网络安全宣传周启动
u8的数据库
海南智能化软件开发服务价格
扬州晶澳软件开发
中国物联网络技术有限公司
网络安全问答中奖名单
江苏网络安全协会戴晟
网络安全培训 答案
数据库权限不包括
关于网络安全的图片没有字
大数据互联网科技范儿
三维建模数据库失败
access数据库管理图片
jstor是什么数据库
分布式数据库 优化
中农惠民集团软件开发商
欧洲首部网络安全法是什么
住建局网络安全年度工作计划
文件没有同步到当前服务器
5线城市软件开发
我的世界2b2t服务器怎么制作
定制化国产服务器如何选择
北京服务器设备检测公司
软件开发人员头衔
白城定制软件开发
霸气网络安全绘画
北京众维网络技术有限公司
美国 数据库