integer-overflow相关内容

如何处理任意大的整数

我正在编程语言,今天我得到了一个点,我可以编译阶乘函数(递归),但是由于一个整数的最大大小,我可以得到的最大的是factorial(12)。什么是一些用于处理任意最大大小的整数的技术。 解决方案 如果你需要大于32位,你可以考虑使用64位整数(长整型),或使用或写入任意精度的数学库,例如 GNU MP 。 ..
发布时间:2016-10-11 23:12:06 C/C++开发

是C ++中的有符号整数溢出仍然未定义的行为?

我们知道,有符号整数溢出是未定义的行为。但有一些有趣的C ++ 11 cstdint 文档: 有符号整数类型的宽度分别为8,16,32和64位,分别没有填充位和对负值使用2的补码(仅当实现直接支持类型时提供) 请参阅link 这里是我的问题:因为标准明确说明 int8_t , int16_t , int32_t 和 int64_t 负数是2的补码,这些类型未定义的行为? 编 ..
发布时间:2016-10-11 21:13:07 C/C++开发

两个大数C#的区别

有已经对这个问题的解决方案的小的数字 在这里:的C#功能找到两个数字 $ b $三角洲b 在这里:我如何才能找到?2值之间在C# 的差异 我要总结的答案他们都: Math.Abs​​(A - b) 问题是的当数大这给了错误的答案(由溢流的方式)。更糟糕的是,如果(A - B)= Int32.MinValue 然后 Math.Abs​​ 用一个异常崩溃(因 ..
发布时间:2016-10-08 14:40:32 C#/.NET

我如何定义检查整数列表

我有列表中所定义的整数和清单; INT> myIntList =新的List< INT>(); 像往常一样,我会增加价值,使用 myIntList.Add()方法列表。我现在面临的问题是,在该列表中的值是动态的(一些计算的结果),可能会超过一个整数可以容纳的最大值。 考虑以下场景: INT X = int.MaxValue; myIntList.Add(X + ..
发布时间:2016-10-01 18:54:12 C#/.NET

递增一个整数值超出其整数限制 - C#

我有一个循环这使直至循环完成递增一个整数值。因此,如果限制n是一个双变量和增加的变量“i”是一个整数,我就会增超出其极限。 双总= 0; 双号= hugetValue; 的for(int i = 1; I< =数字;我++) { 总=总+ I; } 总回报; 发生什么'我',如果它超过其承载能力?如何改变我的价值?我会得到一个运行时错误? 感谢 ..
发布时间:2016-09-19 13:27:01 C#/.NET

力PHP整数溢出

我们有一些整数运算由于历史原因,有工作同样在PHP,因为它在几个静态类型语言一样。自从我们上次升级PHP的整数溢出的行为发生了变化。基本上,我们使用的是下面的公式: 函数f(X1 $,$ X2,X3 $,$ X4) { 收益率(($ X1 + X2 $)^ $×3)+ $ X4; } 然而,即使转换:函数f(X1 $,$ X2,X3 $,$ X4) { 返回INTVAL(INTV ..
发布时间:2016-08-26 15:47:31 PHP

执行处理以的argc = 0

是否可以执行一个过程,其的argc = 0?我需要执行一个程序,但其ARGC等于0,这是非常重要的是有没有办法做到这一点? 我试图把2 ^ 32参数在命令行,使其看起来好像ARGC = 0,但有一个最大限制的参数个数。 解决方案 您可以编写调用 EXEC 直接;它允许您指定命令行参数(包括程序名),并缺乏。 ..
发布时间:2016-08-22 16:45:52 C/C++

INT_MIN的绝对值

我怎么能提取不会溢出 INT_MIN 的绝对值?看到这个code的问题: 的#include&LT;&limits.h中GT; #包括LT&;&stdio.h中GT; #包括LT&;&stdlib.h中GT;诠释主要(无效){ 的printf(“INT_MAX数:%d \\ n”,INT_MAX); 的printf(“INT_MIN数:%d \\ n”,INT_MIN); ..
发布时间:2016-08-21 21:14:27 C/C++

检测uint64_t中的整数溢出乘用C

有没有检查任何有效和可移植的方法时,在C或的int64_t操作数uint64_t中溢出的乘法运算? 例如,对于另外uint64_t中的我可以做的: 如果(UINT64_MAX - A&LT; B)overflow_detected(); 别的总和= A + B; 但我不能得到一个类似的简单的前pression乘法。 所有这一切发生,我更是打破了操作数为高,低uint32_t的部件和执行 ..
发布时间:2016-08-21 20:51:22 C/C++

什么是找到两个值的平均值的正确方法?

我最近才知道,整数溢出是C中的未定义行为(方的问题 - 是它也UB在C ++中) 经常在C语言编程,你需要找到两个值 A 和 B 的平均值。但是这样做(A + B)/ 2 可导致溢出和不确定的行为。 所以我的问题是 - 什么是找到两个值的平均值的正确方法 A 和 B 中C 3 解决方案 与 ..
发布时间:2016-08-21 20:50:26 C/C++

臭虫例如快速排序(K&安培; R C书)?

这是快速排序应该排序“V [左] ... v [右]为增加令”;由K&放从C编程语言复制(没有评论),R(第二版): 无效的qsort(INT v [],诠释左,右诠释) { INT I,最后的; 无效掉期(INT v [],INT I,诠释J); 如果(左&GT; =右) 返回; 交换(ⅴ,左,(左+右)/ 2); 最后剩下=; 对 ..
发布时间:2016-08-21 20:27:56 C/C++

检测C / C ++整数溢出没有有用和可靠的方式?

可能重复:结果 检测C / C整数溢出的最佳方式++ 的不,这不是重复。问题是相同的,但问题是不同的。的 gcc编译器可以优化掉溢出检查(与-O2),例如: INT A,B; B = ABS(一); //将溢出如果= 0x80000000的 如果(B&小于0)的printf(“溢出”); //优化掉 gcc的人认为,这是不是一个错误。溢出是未定义的行为,按照C标准,它允许编译器 ..
发布时间:2016-08-21 19:54:07 C/C++开发

如何检查整数溢出用C?

可能重复:结果 检测C / C整数溢出的最佳方式++ 有(1): //假设X,Y都是非负 如果(X&GT;最大 - y)的错误; 和(2): //假设X,Y都是非负 INT总和= X + Y; 如果(总和&LT; X ||总和&LT; Y)错误; 伟驰为preferred或是否有更好的办法。 解决方案 整数溢出(注意,在无符号整数运算永远不会溢出,就被定义为环绕式代替)在 ..
发布时间:2016-08-21 19:52:03 C/C++

难道整数溢出会导致不确定的,因为内存损坏行为?

我最近读到,在C和C ++符号的整数溢出导致未定义行为: 如果一个前pression的评估过程中,结果不是数学定义或没有针对其类型重新presentable值的范围,行为是不确定的。 我目前想了解这里的不确定的行为的原因。我想是因为整数开始自己周围操纵内存,当它变得太大,以适应基础类型出现在这里未定义的行为。 所以我决定在Visual Studio 2015年写的一个小测试程序来测试 ..
发布时间:2016-08-19 16:04:00 C/C++开发

在溢出的情况下,不要在stdint.h定义展出C99符号整型定义良好的行为?

在C(short,int和长等)表现出不确定的行为,如果他们得到外部的结果[TYPE_MIN,TYPE_MAX]区间内(在“标准”有符号整数类型的所有操作,其中TYPE_MIN,TYPE_MAX是最小和最大整数值分别可以由特定整数类型被存储 根据C99标准,但是,我们要求所有的 intN_t 类型有补重presentation: 7.8.11.1精确宽的整数类型结果 1. typedef ..
发布时间:2016-08-18 15:09:09 C/C++

关于无符号整数下溢Ç行为问题

我在该整数用C溢出明确不像签署对口许多地方阅读。 下溢一样吗? 例如: unsigned int类型X = -1; //是否点¯x== UINT_MAX? 感谢。 我不记得在哪里,但我在其他地方见过无符号整型算术是模块化的,所以如果说当时的情况下-1 == UINT_MAX MOD(UINT_MAX + 1)。 解决方案 §6.2.5,第9段: 在无符号的一种计算 操 ..
发布时间:2016-08-17 22:11:17 C/C++