首页 | 主题 | 图库 | 问答 | 文摘 | 原创 | 百科

历史 | 地理 | 人物 | 艺术 | 体育 | 科学 | 音乐 | 电影 | 信息技术 | 世界遗产

 开放、中立,源自维基百科

个人工具


2000年问题

维库,知识与思想的自由文库

(重定向自两千年问题)
跳转到: 导航, 搜索

2000年问题Year 2000 Problem,简称Y2K),台湾称千禧蟲危機,有时又称为千年虫,是指由于计算机程序设计的一些问题,使得计算机在处理2000年1月1日以后的日期和时间时候,可能会出现不正确的操作,从而可能导致一些敏感的工业部门(比如电力,能源)和银行,政府等部门在2000年1月1日零点工作停顿甚至是发生灾难性的结果。

2000年问题在英文中通常缩写为Y2K。其中Y表示“year”也就是年,而K则表示拉丁前缀“kilo”,表示1000。Y2K或者就是指2000年。

一般来讲两千年问题的发生是由于计算机程序中使用两个数字来表示年份。这样导致2000年被表示为"00",而在它之前的1999年表示为"99",这是不连续的。这样将会导致某些程序在计算时得到不正确的结果。在嵌入式系统中可能存在同样的问题,这有可能导致设备停止运转或者发生更加灾难性的后果。

但是不管怎么样,由于世界上各地的政府和企业都对两千年问题给予了足够的关注,1999年1月1日2000年3月1日并没有出现大范围的计算机故障。

[编辑] 程序问题

两千年问题始于20世纪60年代,当时计算机内存和外部存储介质的成本很高,大多数数据处理需要借助于用穿孔卡片,它用80行文本表示所储存的数据。那个时候的编程语言,如COBOLRPG,使用ASCII码和EBCDIC编码表示数据。如果用四位数字表示年份,就要多占用储存器空间,就会使成本增加,因此为了节省存储空间,计算机系统的编程人员采用两位数字表示年份,随着计算机技术的迅猛发展,虽然后来存储器的价格降低了,但在计算机系统中使用两位数字来表示年份的做法却由于思维上的惯性势力而被沿袭下来。对大多数程序员来讲,他们并不认为所编写的软件会持续使用很多年。

具体来讲,两千年问题要解决的事项包括以下几个要点:

两千年问题是由Bob Bemer1958年第一次提出的。在其后的二十年里,他用了很大的努力,希望政府、企业和国际组织(如IBMISO)来关注这个问题,但反响寥寥。直到2000年将要到来的时候,人们才感觉到两千年问题的紧迫性。于是社会和政府都投入了大量的人力和物力来避免发生大规模的计算机灾难。而从现在来看,这些努力也取得了相应的成果。

[编辑] 问题解决了吗

解决两千年问题不是一朝一夕的事情。有些程序可能会免在2000年出现闰日而强行修改计算日期的过程。这些程序如果继续在將來的閏年使用的话,有可能会导致日期错乱。所以,我们还不要对两千年问题掉以轻心。

另一方面,对于其它使用其它历法的地区,如台湾的民国纪年或泰国佛曆,类似问题也有可能在稍后年份出现。例如:民国100年就在2011年。如果所用的软件没有解决两位年份的问题,那其实只是将两千年问题從2000年推迟11年後再发生。

对于目前在世界上广泛用作服务器软件的Unix系统来讲,由于传统的Unix系统使用32位的整型数表示日期(这个32位数字表示从1970年1月1日起至所存储日期过去了多少秒),因此在2038年日期将会被卷回,类似于两千年问题。时间将可能重新从1970年1月1日开始计算,这将可能引起世界范围的计算机故障。这被称为2038年问题

此外仍然有一个更加有趣的问题:是否存在10000年问题。當然,在10000年時候世界、人類文明、甚至網際網絡可能不再存在。縱然這些都是可能性的問題,但無論如何,這條仍是個充滿意思的問題。

所以,两千年问题的关键在于计算机日期存储的格式:时间可能是无限,但你只能够用有限的储存空间表示时间。涉及到日期的运算又是非常常见的一种运算。如果要彻底的解决这一类问题,就必须在设计硬件或者软件时候充分估计到你所设计的对象可能服务的时间。并且找到最合适的日期表示方法,从而避免在将来可能出现的问题。

[编辑] 千年蟲騙案

主条目:千年蟲騙案

2000年之前,香港有不少騙徒宣稱有千年蟲杜蟲藥,誘騙對千年蟲問題一知半解的民眾購買(有部分不熟悉電腦的市民以為千年蟲是一種類似瘟疫傳染病病毒),是當時候典型的街頭騙案,電視節目警訊亦不時提醒市民慎防騙局。

其它语言
AD Links