千家信息网

Java中怎么判断整数溢出

发表于:2025-02-24 作者:千家信息网编辑
千家信息网最后更新 2025年02月24日,本篇文章给大家分享的是有关Java中怎么判断整数溢出,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。解决方案JDK8已经帮我们实现了Mat
千家信息网最后更新 2025年02月24日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安全错误 数据库的锁怎样保障安全 深度网络技术自动答题怎么弄 csgo我不能在安全服务器 看一下主持人服务器的图片 为什么服务器总是在维护中 连云港银联软件开发管理方法 把数据写到数据库的命令 腾讯地图车机版离线数据库 网络安全审查修订草案何时生效 网页源码传输到服务器 上海废旧ktv服务器 天津哪里代理服务器云主机 数据库安全机制4个等级 网络安全工程师二本 网络安全工程师 pdf 软件开发需要了解哪些语言 网络安全技术相关内容 坦克世界闪击战一共多少服务器 股票论坛数据库设计 如何管理服务器上的网页 软件开发 多少税点 数据库对配置要求 qq聊天记录是在本地还是服务器 上海好服务器厂家直销价格 软件开发公司不能告诉客户报价 苹果软件开发怎么学 特斯拉服务器运营公司 远程管理服务器加什么端口 莆田软件开发招聘 两个gdc服务器怎么节目互传 神经网络服务器硬件配置
0