32 位系统的时间 BUG,为什么有人说是 The Year-2038 Bug?

2014-05-28 19:03:58 +08:00
 manoeuvre
以前看书 看了一眼 直接翻过去了,今天闲的蛋疼,算了一下。
32位系统按UTC来算,是1970+136.19
差不多也就是到2106年。

怎么会是2038呢?肿么回事。
3947 次点击
所在节点    问与答
4 条回复
riaqn
2014-05-28 19:12:01 +08:00
http://www.lmgtfy.com/?q=year+2038+problem

因为是int32_t 不是uint32_t
bianzhifu
2014-05-28 19:15:07 +08:00
因为采用了32位有符号整型(signed int32)来实现,32位有符号整型所能表示的最大数+2147483647
所以是2038年1月19日 上午11:14:07
decken
2014-05-28 19:33:28 +08:00
从0开始算就是2038年了
JoyNeop
2014-05-28 20:22:40 +08:00
实际 68 年你算出来 136 年这还不够明显吗 =_= 随便一想就能猜到 unsigned 与 signed -_-#

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/114757

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX