enter image description here上次我做7x7矩阵求正数的乘积。我得到了一个否定的结果,在放置了一些空格后,它被修复了。当我发现我是一个整数溢出。其实我不明白的问题是什么?有没有想过它是怎么发生的或者是怎么修复的。
发布于 2019-10-10 02:52:37
我认为解决你的问题的方法是使用unsigned int而不仅仅是int。特别适用于您的代码使用
unsigned int sum = 1;如果您想知道您的类型的限制是什么,可以使用sizeof()方法。通常对于int,它将返回2或4(字节)。在2字节的情况下,您的限制是32,768。在大多数情况下,它将是4个字节,限制为2,147,483,648。如果您知道您将只处理正数,那么您最好使用unsigned int。通过这种方式,您可以获得两倍的选择,并且限制将分别变为65,536和4,294,967,296。
如果您认为这些限制不足以进行计算,则应该考虑将int类型更改为long。它的大小是8个字节,它为您提供了足够的空间。
https://stackoverflow.com/questions/58306553
复制相似问题