千家信息网

Java中怎么判断整数溢出

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇文章给大家分享的是有关Java中怎么判断整数溢出,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。解决方案JDK8已经帮我们实现了Mat
千家信息网最后更新 2026年10月31日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安全错误 数据库的锁怎样保障安全 互联网络科技 互联网科技公司税收优惠 工业互联网科技新基建 互联网公司 科技公司 苏州互联网科技贷款公司 互联网金融科技平台 苏州大垚互联网科技 多迪互联网科技有限公司 茂名市互联网科技产业园 南平创想时代互联网科技有限公司 洛阳昕诺飞互联网科技有限公司 互联网保险科技创业 燊美集互联网科技有限公司 河南住房之家互联网科技 梅州GM互联网络科技有限公司 广州富喜互联网络科技 广州百诚互联网科技有限公司官网 同城互联网络科技 求路客互联网科技电话 知域互联网科技有限公司官网 百单网互联网科技有限公司 广东猪兼强互联网科技有限公司 科技类的互联网平台 云创客互联网科技公司 互联网科技创新的路径 科技互联网的核心竞争力 北京市互联网新科技 中国互联网有什么科技 互联网科技数字货币 云南互联网科技学费
0