千年虫是怎么回事?
发布网友
发布时间:2022-05-16 06:32
我来回答
共1个回答
热心网友
时间:2023-10-13 19:20
在
设计计算机
的程序时规定了的年份仅用两位数来表示,那么无论遇到是哪一个世纪的,计算机都会
老老实实
地取年份中的后两位来表示其年份,决不会采取四位数来表示年份的。也就是说,假如是1971年,在计算机里就会被表示为“71”,而假如是2002年,计算机就会将其年份表示为“02”。这样的话假如要计算相差多大,计算机要用02减去71了。这就是
千年虫
(计算机
2000年问题
)。
计算机千年虫(2000年问题)的定义:
2000年问题,就是指在某些使用了
计算机程序
的
智能系统
(包括
计算机系统
、自动控制芯片等)中,由于其中的年份只使用两位
十进制数
来表示,因此当系统进行(或涉及到)跨世纪的日期处理运算(如多个日期之间的计算或比较等)时,就会出现错误的结果,进而引发各种各样的系统功能紊乱甚至崩溃。
另外,更广泛的讲,2000年问题还包括其他两个方面的问题:
一个是在一些计算机系统中
,对于
闰年
的计算和识别出现问题,不能把2000年识别为闰年,即在该计算机系统的日历中没有2000年2月29日这一天,而是直接由2000年2月28日过渡到了2000年3月1日;
另外一个是在一些比较老的计算机系统中,使用了数字串99(或99/99等)在程序中来表示文件结束、永久性过期、删除等一些特殊意义的自动操作,这样当1999年9月9日(或1999年4月9日即1999年的第99天)来临时,计算机系统在处理到内容中有日期的文件时,就会遇到99或
99/99等数字串,从而将文件误认为已经过期或者将文件删除等错误操作,引发系统混乱甚至崩溃等故障。这个问题有的时候也被称为“9999虫”。
2000年问题(英文为
Year
2000
Problem)在国际上有各种各样的叫法,比较通俗的一种就是“千年虫”,英文为
Millennium
Bug,其中
Millennium
是“一千年”的意思。而Bug在汉语中是“
臭虫
”,它是美国常用俗语,在计算机界表示那些程序开发中没有注意到的漏洞和毛病。2000年问题就是当初
设计程序
时没有注意到的一个毛病,它在2000年来临时才发作,所以我们把他叫做“千年虫”(Millennium
Bug)。另外,国外经常把一千(KILO-)简写为K,所以2000年问题(Year
2000
)国际上也简称为
Y2K
,其中Y是
英语单词
Year的简写,2K是2000的简写。
同时,从上面的第三个问题中,我们已经看出,假如只用两位数来表示年份的话,当我们在进行不同世纪里的两个年份之间的计算时,我们会得出多么错误的结果。而对于这个结果,我们目前仅仅感觉到的是它的错误可笑,但当这样的错误一旦发生到关键部门的话,其带来的后果又是不可想象的。