无符号长整型数据类型

4
我正在提交一份使用C语言的矩阵指数代码,用于找到第n个斐波那契数,并且我使用long long int变量来存储第n个斐波那契数模10000007的答案。然而,裁判会出现“超时”错误,但是当我使用“unsigned long long int”时,我的代码在时间限制内被接受,执行时间也缩短了。
我不明白为什么使用long long int会出现“超时”错误,而使用“unsigned long long int”却能被接受呢?(在极端测试情况下,两种情况下的答案都是正确的)

你完全有信心评测机器上的架构与你的一致吗? - Chris Eberle
9
无符号整数与有符号整数的性能之间有何区别?在大多数情况下,无符号整数和有符号整数的性能是相同的。 然而,在某些情况下,无符号整数的性能可能会更好,因为它们不需要处理符号位。对于小型数据类型(例如char或short),编译器通常会将它们提升为int类型并执行操作,因此使用无符号数据类型不一定会带来性能提高。 此外,在执行算术运算时,需要注意在使用无符号数据类型时可能会出现溢出问题。总之,选择无符号整数还是有符号整数应该根据数据类型的用途和上下文来确定,而不是简单地追求性能。 - Mitch Wheat
你使用了什么架构? - jmq
我不确定评测机的架构,但主要目的是为了理解为什么 unsigned long long int 的运行速度很快。 - L.ppt
1个回答

5

当我们将无符号整数与双精度数混合使用时会产生开销,但我的代码处理了乘法,“unsigned int” 比 “int” 更快,并且现在我还可以通过比较两种类型乘法的汇编代码来检查乘法运算... :) - L.ppt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接