1

我写了一个小程序,可以在一小时内解决 49151 个数独的任务,但我们必须计时。我以为我会让它运行然后检查执行时间,但它说 -1536.087 s。我猜它与计时器是一些签名的数据类型或其他东西有关,但我不知道控制台中的计时器使用什么数据类型(代码::块控制台,我不确定这是否真的是单独的控制台,或者只是一个从本地操作系统运行终端的运行器),所以我无法检查实时时间。我宁愿不要在我的程序中使用一些编码计时器再次运行它,因为我希望现在能够再次使用我的电脑。有人知道这个时间会是什么吗?它应该在 40 到 50 分钟之间,所以在 2400 到 3000 秒之间。

4

4 回答 4

10

如果时间以微秒为单位存储在 32 位有符号整数中,2758880296 us(微秒)将产生此结果,因为2758880296-2^32 = -1536087000. 以分秒为单位,就是45:58.880296. (用一粒盐处理最后几位小数,因为大概你打印的内容被四舍五入到最接近的毫秒)

但是,当然,这只是基于您提供的信息的明智猜测。

于 2010-03-29T02:35:01.177 回答
2

如果您在 linux 上运行,请使用“时间”:

$ time ./your_program
real    0m0.003s
user    0m0.004s
sys     0m0.000s
于 2010-03-29T02:20:23.130 回答
2

我猜是46分钟。

假设一个 32 位有符号整数表示微秒。

那么 -1,536,087,000us 将与 2,758,880,296us 相同,即 45:58.880。

不过,可能有另一种表示形式在您的范围内给出同样合理的结果。

于 2010-03-29T02:35:42.203 回答
0

我猜准确地说是 42 分钟(忽略小数并假设 12 位有符号数据类型)......但这是一个愚蠢的猜测,因为您没有包含有关如何检查执行时间的任何信息。

于 2010-03-29T02:22:16.903 回答