问题标签 [integer-overflow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
5158 浏览

java - 两个有符号 Java 'long' 值的饱和相加

如何long在 Java 中添加两个值,以便如果结果溢出则将其限制在范围内Long.MIN_VALUE.. Long.MAX_VALUE

对于添加整数,可以精确地执行算术long并将结果转换回int,例如:

或者

但在long没有更大的原始类型可以容纳中间(非钳位)总和的情况下。

由于这是 Java,我不能使用内联汇编(特别是 SSE 的饱和添加指令。)

它可以使用来实现BigInteger,例如

但是性能很重要,因此这种方法并不理想(尽管对测试很有用。)

我不知道避免分支是否会显着影响 Java 的性能。我认为它可以,但我想对有和没有分支的方法进行基准测试。

相关:如何在 C 中进行饱和加法?

0 投票
3 回答
66430 浏览

c - 如何在没有未定义行为的情况下检查 C 中的有符号整数溢出?

有(一):

和(2):

哪个是首选或有更好的方法。

0 投票
10 回答
23546 浏览

language-agnostic - 什么是整数溢出错误?

什么是整数溢出错误?为什么我关心这样的错误?有哪些避免或预防的方法?

0 投票
6 回答
18847 浏览

algorithm - 如何在将两个 2 的补码整数相乘时检测溢出?

我想将两个数字相乘,并检测是否有溢出。最简单的方法是什么?

0 投票
5 回答
15271 浏览

java - Java Integer compareTo() - 为什么使用比较与减法?

我发现方法的java.lang.Integer实现compareTo如下所示:

问题是为什么使用比较而不是减法:

0 投票
3 回答
21917 浏览

c - 关于无符号整数下溢的 C 行为问题

我在很多地方读到无符号整数溢出在 C 中定义明确,与有符号对应物不同。

下溢是否相同?

例如:

谢谢。

我不记得在哪里,但我在某处读到无符号整数类型的算术是模块化的,所以如果是这种情况,那么 -1 == UINT_MAX mod (UINT_MAX+1)。

0 投票
4 回答
2757 浏览

c++ - 整数溢出错误

这是我的 OpenGL 代码的一部分,我收到以下错误:


0 投票
5 回答
22151 浏览

security - 整数溢出如何被利用?

有没有人详细解释如何利用整数?我已经阅读了很多关于这个概念的内容,我理解它是什么,我理解缓冲区溢出,但我不明白如何通过使整数大于它定义的内存....

0 投票
1 回答
770 浏览

vba - 在 VBA 中睡觉(整数溢出!!)

在 VBA 中,您可以

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

为自己提供睡眠程序。

但是,Long对于超过 32000 毫秒的值,必须传递给例程的 似乎会溢出。

有没有一种方法可以让睡眠更长时间,而无需将几个连续的睡眠例程调用串联在一起的复杂性?

0 投票
12 回答
187497 浏览

java - Java 如何处理整数下溢和上溢以及如何检查它?

Java 如何处理整数下溢和上溢?

从那开始,您将如何检查/测试这种情况是否正在发生?