Java中怎么判断整数溢出
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,本篇文章给大家分享的是有关Java中怎么判断整数溢出,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。解决方案JDK8已经帮我们实现了Mat
千家信息网最后更新 2025年12月01日Java中怎么判断整数溢出
本篇文章给大家分享的是有关Java中怎么判断整数溢出,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
解决方案
JDK8已经帮我们实现了Math下,不得不说这个方法是在StackOverflow找到了的,确实比国内一些论坛好多了
加法
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;
}
注意 long和int是不一样的
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安全错误
数据库的锁怎样保障安全
数据库编程软件报价
光遇游戏服务器崩溃
屯溪市网络安全
qt如何使用本地数据库连接
电子软件开发简历封面
创博网络技术有限公司
轻量服务器架设传奇不能登录
疫情过后的互联网科技
软件开发软考考什么好
龙岗可靠的服务器运维服务
数据库使用的优化
二级代理网关服务器
vr软件开发前景怎么样
数据库概率教材
网站提示当前网络安全
etl工程师数据库开发吗
java测试数据库
杭州成典网络技术公司
软件开发中ui占多少比例
国家网络安全局电话号码
linux软件开发程序员
重庆税务局服务器地址云空间
功能性网络技术
学数据库方法
软件开发ci是什么意思
邢台市采暖自动化控制软件开发
sci数据库专利
软件开发业务核心流程图
数据库primary类型
设置服务器网络共享文件