79得票6回答
在数据库中,当整数列的auto_increment达到最大值时会发生什么?

我正在实现一个数据库应用程序,将使用JavaDB和MySQL作为数据库。我的表中有一个ID列,类型为整数,并且我使用数据库的auto_increment函数来生成该值。 但是,当我拥有超过20亿(或40亿)个帖子时,整数会发生溢出并继续增长吗?还是会抛出异常,以便我可以处理? 是的,我可以...

75得票4回答
argc会发生溢出吗?

我在SO上浏览,看到了这个问题。然后我开始想知道是否可以溢出argc。 标准规定argv[argc]必须是空指针,但是如果argc溢出,则不会成立。 (我编写了一个小的C程序和Python脚本进行测试,但遇到了MemoryError.) 谢谢! C语言国际标准解释 §5.1.2.2.1 程...

75得票4回答
为什么 long long 类型的 2147483647 + 1 等于 -2147483648?

为什么这段代码不能打印出相同的数字?:long long a, b; a = 2147483647 + 1; b = 2147483648; printf("%lld\n", a); printf("%lld\n", b); 我知道int变量的最大值是2147483647,因为int变量是4个...

70得票5回答
这是JVM的一个bug还是"预期行为"?

我注意到了一些意外的行为(与我个人的期望相比),我想知道JVM是否有bug,或者这是一个边缘情况,在这种情况下我可能不理解应该发生什么具体细节。假设我们在主方法中有以下代码:int i; int count = 0; for(i=0; i < Integer.MAX_VALUE; i+=...

64得票4回答
编译器优化可能导致整数溢出。这样做可以吗?

我有一个 int x。为简化起见,假设 int 占用的范围为 -2^31 到 2^31-1。我想计算 2*x-1。我允许 x 为任何值,满足 0 <= x <= 2^30。如果我计算 2*(2^30),就会发生整数溢出。 一种解决方案是计算 2*(x-1)+1。这里比我想要的多了...

59得票4回答
BigInteger 没有限制是什么意思?

我研究了这个与大整数相关的StackOverflow问题,特别是我不理解这行话(斜体字): 在BigInteger类中,我没有限制,并且有一些有用的函数,但将您的美丽代码转换为与BigInteger类一起工作真的很令人沮丧,特别是当原始操作符在那里无法使用时,您必须使用此类的函数。 ...

56得票10回答
两个整数的异或运算是否会超出范围?

我一直在研究如何在一个数组中找到孤独的整数算法,并且这是实现:int arr[] = {10, 20, 30, 5, 20, 10, 30}; int LonelyInteger = 0; for(int i=0; i< 7; i++) { LonelyInteger = Lon...

52得票10回答
为什么编程语言默认不会在整数溢出时报错?

在一些现代编程语言中(包括C++、Java和C#),语言允许整数溢出在运行时发生而不引发任何错误条件。 例如,考虑这个(人为制造的)C#方法,它没有考虑到溢出/下溢的可能性。(为了简洁起见,该方法也没有处理指定列表为空引用的情况。) //Returns the sum of the val...

51得票6回答
整数溢出是否会导致内存破坏而产生未定义行为?

我最近读到,C和C++中的有符号整数溢出会导致未定义行为: 如果在表达式求值过程中,结果在其类型的可表示值范围内没有数学定义或不在该类型的可表示值范围内,则行为是未定义的。 我目前正在尝试理解此处未定义行为的原因。我认为未定义行为发生在此处,是因为整数在变得太大而无法适应基础类型时...

48得票5回答
-1 * int.MinValue == int.MinValue??这是一个bug吗?

我发现在C#中-1 * int.MinValue == int.MinValue 这是一个bug吗?当我试图实现搜索树时,它真的让我很困扰。我最终使用了(int.MinValue + 1)来正确地对其取反。