integer-overflow相关内容

用mpreal.h解带长整数参数的非线性方程时的精度损失

我有一个数值计算问题,需要以多重精度求解非线性方程式(带长整数). 我从Pavel的此链接尝试了MPFR C ++包装器: mpavel的mpfr C ++包装器 包装器可以在这里下载: mpfrc ++-3.5.6.zip 但是,当处理非常长的整数(使用小整数的公式效果很好)时,解决方案会出现精度损失. 我尝试了以下示例代码中的三个选项: 立即使用代码不适用于“常量整数" ..

如何在MATLAB/Octave中获得实数整数溢出?

我正在为MATLAB/Octave中的某些VHDL代码开发一种验证工具.因此,我需要产生“实际"溢出的数据类型: intmax('int32') + 1 ans = -2147483648 稍后,如果我可以定义变量的位宽,这将很有帮助,但是现在这并不那么重要. 当我建立一个类似C的示例时,变量会不断增加直到小于零为止,它会永远旋转: test = int32(2^30); w ..
发布时间:2020-05-06 12:03:28 其他开发

Java算术

为什么此代码返回错误的值? int i=Integer.MAX_VALUE+1; long l=Integer.MAX_VALUE+1; System.out.println(l); System.out.println(i); 解决方案 将1加到Integer.MAX_VALUE时,它溢出并环绕到Integer.MIN_VALUE. 之所以会发生这种情况,是因为Java使用二进 ..
发布时间:2020-05-06 11:28:47 Java开发

无符号算术和整数溢出

我试图了解算术溢出.假设我有以下内容, unsigned long long x; unsigned int y, z; x = y*z; y * z可能导致整数溢出.是否将操作数之一强制转换为unsigned long long可以缓解此问题.将64位操作数与32位操作数相乘的预期结果是什么? 解决方案 unsigned long long x; unsigned int y ..
发布时间:2020-05-04 03:45:21 C/C++开发

如果LONG_MAX为2147483647,strtol(“-2147483648",0,0)是否溢出?

根据strtol的规范: 如果主题序列具有预期的形式,并且base的值是0,则将从第一个数字开始的字符序列应解释为整数常量.如果主题序列具有预期的形式,并且base的值在2到36之间,则应将其用作转换的基础,将每个字母的值如上所述.如果主题序列以减号开头,则转换结果应为负.如果endptr不是空指针,则指向最终字符串的指针应存储在endptr指向的对象中. 当前的问题是,在求反之前,该 ..
发布时间:2020-04-27 05:01:31 其他开发

是否有一些有意义的统计数据来证明保持未定义的有符号整数算术溢出是合理的?

C标准明确将带符号整数溢出指定为具有未定义行为.然而,大多数CPU都使用定义的语义为溢出实现签名算术(可能除以除法溢出:x / 0和INT_MIN / -1). 编译器作者一直在利用此类溢出的不确定性来添加更具攻击性的优化,这些优化往往会以非常微妙的方式破坏传统代码.例如,此代码可能在较旧的编译器上有效,但在gcc和clang的当前版本上不再有效: /* Tncrement a by ..
发布时间:2020-04-27 04:28:25 C/C++开发

固定宽度整数是否通过乘法分配?

对于三个n位带符号整数a,b和c(例如32位),考虑整数整数溢出,a * (b + c) == (a * b) + (a * c)是否总是正确吗? 我认为这与语言无关,但是如果不是,则我对Java的答案特别感兴趣. 解决方案 是的,它成立,因为整数算术是有限环上的模算术. 您可以在此处看到一些理论性的讨论: https://math .stackexchange.com/que ..
发布时间:2020-04-27 04:03:54 Java开发

什么是整数溢出错误?

什么是整数溢出错误? 我为什么要关心这样的错误? 有什么方法可以避免或预防它? 解决方案 当您尝试表达的数字大于整数类型可以处理的最大数字时,就会发生整数溢出. 如果尝试在一个字节中表示数字300,则整数溢出(最大为255).在两个字节中的100,000也是整数溢出(最大65,535). 您需要在意它,因为数学运算不会像您期望的那样运行.如果您有整数溢出,则A + B实际上不等 ..
发布时间:2020-04-27 03:28:11 其他开发

如果我要对32位以上的对象进行更多引用,会发生什么?

所以我刚刚学会了声明Object类型的变量(即 Object a; ),为该变量分配了32位空间。在这个变量/引用中,有一个实际Object的内存地址。 现在让我假装我有足够的内存来执行此操作。 如果我创建了超过4,294,967,296(2 32 )类型的Object变量并尝试将它们分配给不同的对象,会发生什么?由于整数溢出,某些变量/引用是否会获得相同的内存地址?这意味着在内存中引 ..
发布时间:2019-01-02 15:23:49 Java开发

重现行为MAX_VALUE和MIN_VALUE

以下内容也适用于其他 MIN_VALUE 和 MAX_VALUE ,但我们只关注现在整数。我知道在Java中整数是32位, Integer.MAX_VALUE = 2147483647 (2 31 -1)和 Integer.MIN_VALUE = -2147483648 ( - 2 31 )。当你超出它们的界限时使用这些值计算时,数字会回绕/溢出。因此,当您执行类似 Integer.MAX_VAL ..
发布时间:2018-12-29 19:51:47 Java开发

Java乘法运算行为

我写了一个方法将给定数字从天转换为毫秒: private long expireTimeInMilliseconds; ... public void setExpireTimeInDays(int expireTimeInDays) { expireTimeInMilliseconds = expireTimeInDays * 24 * 60 * 60 * 1000; } ..
发布时间:2018-12-28 21:53:23 Java开发

通常大数字变为负数

自从我开始将eclipse用于项目euler以来,我注意到大数字有时会变成看似随机的负数。我想这与传递类型的boudry有关。 如果你能向我解释这些负数是如何生成的,那么我会很高兴它背后的逻辑。另外,我怎样才能避免它们(最好不要使用BigInteger类)。 Danke!=) 解决方案 此图显示了您要查找的内容。在你的情况下,它显然是更大的数字,但原则保持不变。 java中的限 ..
发布时间:2018-12-04 13:04:29 Java开发

BigInteger没有限制意味着什么?

我调查了这个有关Big Integer的stackoverflow问题,具体来说我不明白这个line(斜体字): 在BigInteger类中,我没有限制并且有一些有用的 在那里运行但是将你漂亮的 代码转换为使用BigInteger类是非常令人沮丧的,特别是当原始 运算符不能在那里工作时你必须使用这个类中的函数。 我不知道我错过了什么,但代表一些没有限制的东西,你需要无限的记忆?什 ..
发布时间:2018-11-27 11:25:41 Java开发

可靠的溢出检测浮点/整数类型转换

是否有一种安全的方法可靠地确定整数类型 T 是否可以存储浮点整数值 f (所以 f == floor(f))没有任何溢出? 请记住,没有保证浮点类型 F 与IEC 559(IEEE 754)兼容,并且有符号整数溢出在C ++中是未定义的行为。我对根据当前的C ++(写作时的C ++ 17)标准是正确的解决方案感兴趣,并避免未定义的行为。 以下天真方法不可靠,因为无法保证类型 F 可以表 ..