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服务器怎么节目互传
神经网络服务器硬件配置