千年虫 2038问题

千年虫问题:

计算机2000年问题,又叫做“千年虫”、“电脑千禧年千年虫问题”或“千年危机”。缩写为“Y2K”。是指在某些使用了计算机程序的智能系统(包括计算机系统、自动控制芯片等)中,由于其中的年份只使用两位十进制数来表示,因此当系统进行(或涉及到)跨世纪的日期处理运 算时(如多个日期之间的计算或比较等),就会出现错误的结果,进而引发各种各样的系统功 能紊乱甚至崩溃。因此从根本上说千年虫是一种程序处理日期上的bug(计算机程序故障),而非病毒。

“千年虫”问题的根源始于60年代。当时计算机存储器的成本很高,如果用四位数字表示年份,就要多占用存储器空间,就会使成本增加,因此为了节省存储空间,计算机系统的编程人员采用两位数字表示年份。随着计算机技术的迅猛发展,虽然后来存储器的价格降低了, 但在计算机系统中使用两位数字来表示年份的做法却由于思维上的惯性势力而被沿袭下来, 年复一年,直到新世纪即将来临之际,大家才突然意识到用两位数字表示年份将无法正确辨识公元2000年及其以后的年份。1997年,信息界开始拉起了“千年虫”警钟,并很快引起了全球关注。

2038问题:

UNIX时间戳,或称UNIX时间、POSIX时间,是一种时间的计算方式,定义为从格林威治时间1970年01月01日00时00分00秒起至当前的总秒数。在主流的32位操作系统中,大部分都使用有符号32位(signed int)的二进制数表示时间戳,此类系统的时间戳最多可以使用到格林威治时间2038年01月19日03时14分07秒,时间再走一秒后时间戳数据将会溢出导致符号位产生变化,时间变化为1901年12月13日20时45分52秒。

原文引用:http://baike.baidu.com/link?url=initpyC1v7X4uQs2WCSz6UBVAbtl-fKQC4dwQ9URNbrooIKjBZZz_nwClOpWuG7v99Wog80qkDvcd7GfTSLPnI3iAG4HXnJbRfe0dCbk-uS

《STM32自学笔记》Page205

posted @ 2016-04-19 15:48  LoveYaner  阅读(1306)  评论(0编辑  收藏  举报