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

广泛地讲,“千年虫”还包括以下两个方面的问题:一个是在一 些计算机系统中,对于闰年的计算和识别出现问题,不能把2000年识别为闰年,即在该计算 机系统的日历中没有2000年2月29日这一天,而是直接由2000年2月28日过渡到了2000年3月1 日;另一个是在一些比较老的计算机系统中,在程序中使用了数字串99(或99/99等)来表示 文件结束、永久性过期、删除等一些特殊意义的自动操作,这样当1999年9月9日(或1999年4 月9日即1999年的第99天)来临时,计算机系统在处理到内容中有日期的文件时,就会遇到99 或99/99等数字串,从而将文件误认为已经过期或者将文件删除等错误操作,引发系统混乱 甚至崩溃等故障。

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

“千年虫”解决之后,会不会有新的“虫”出现?回答是肯定的,“2038年”就是一个新的关卡。 网络时代,机会与危机共存,这也许是你我必须面对和必须付出的代价。

也许大家都已经知道计算机的2000年问题是什么概念,但是什么时候又冒出来一个2038年问题的呢? 用C语言编制的程序不会碰到2000年问题,但是会有2038年问题。这是因为,大多数C语言程序都使用到一个叫做“标准时间库”的程序库,这个时间库用 一个标准的4字节也就是32位的形式来储存时间信息。 当初设计的时候,这个4字节的时间格式把1970年1月1日凌晨0时0分0秒作为时间起点,这时的时间值为0。以后所有的时间都是从这个时间开始一秒一秒 累积得来的。 比方说如果时间已经累积到了919642718这个数值,就是说这时距离1970年1月1日凌晨0时0分0秒已经过去了919642718秒,换算一下就 应该是1999年2月21日星期天16时18分38秒。 这样计算时间的好处在于,把任意两个时间值相减之后,就可以很迅速地得到这两个时间之间相差的秒数,然后你可以利用别的程序把它换算成明白易懂的年月日时 分秒的形式。

要是你曾经读过一点儿关于计算机方面的书,你就会知道一个4字节也就是32位的存储空间的最大值是2147483647,请注意!2038年问题的关键也 就在这里———当时间一秒一秒地跳完2147483647那惊心动魄的最后一秒后,你猜怎么样? 答案是,它就会转为负数也就是说时间无效。那一刻的准确的时间为2038年1月18日星期一晚上10时14分7秒,之后所有用到这种“标准时间库”的C语 言程序都会碰到时间计算上的麻烦。 这就是2038年问题。 但是大家也不用太过紧张。2038年问题比Y2K的问题解决起来相对要容易一些,只要给那些程序换一个新版本的“标准时间库”就可以了,比如说,改用8字 节64位的形式来存储时间。这样做并不怎么费事,因为在C程序中“标准时间库”是相对独立的一个部分,里面的时间表达都有自己的一套时间类型和参数(而在 碰到Y2K的那些大型主机中,时间格式大都没有统一)。 说到这里,一些冰雪聪明的菜鸟DDMM们应该可以联想到,Win?dowsNT用的是64位操作平台,它的开始时间是1601年1月1日———但是它每过 1个纳秒就跳一下,因此,WindowsNT它会碰到的是2184年问题…… 而在一些用64位来表示时间的平台上,例如DigitalAlpha、SGI、Sparc等等,想要看到它们的时间出错你得等到天荒地老———那大概是 292亿年。到那时,位于猎户座旋臂的太阳,已经是黑矮星或暗黑物质,猎户座旋臂已经被重力波震断,银河系大概则已经变成小型似星体了。 所以,给那些准备攒机的菜鸟DD一个建议,除非您想要把资料流传给下一个宇宙,一台64位的电脑已经足够。(千龙新闻网)

转载于:https://www.cnblogs.com/henryhappier/archive/2010/09/02/1816259.html

千年虫,2038年虫相关推荐

  1. 千年虫 2038问题

    千年虫问题: 计算机2000年问题,又叫做"千年虫"."电脑千禧年千年虫问题"或"千年危机".缩写为"Y2K".是指在某 ...

  2. 从千年虫,闰年虫,闰秒虫看测试数据设计

    前几天看到一个很有趣的微博(见下图)当然这事儿对发博的人肯定没有趣,又查了一下闰秒的概念: 原来我们的时间计算有两种方式,一种是类似于古人看太阳位置或者用日冕的"天文法",获得的时 ...

  3. 时钟翻转事件_开发人员和时钟翻转

    时钟翻转事件 Let's party like it's 1999! 让我们狂欢吧,就像1999年一样! You have probably written programs with a bug r ...

  4. 试试看:把电脑时间调到2099年12月31号之后,会发生什么

    试试看:把电脑时间调到2099年12月31号之后,会发生什么 2008年12月10日 星期三 22:42 把电脑时间调到2099年12月31号之后,会发生什么 试试看:把电脑时间调到2099年12月3 ...

  5. 电脑时间调到2099年,会发生什么

    试试看:把电脑时间调到2099年12月31号之后,会发生什么 最近在看C++和Fortran的时候无意路过一篇讨论Unix C中年份表达问题的文章,因此又看到了千年虫和万年虫的文章.终于忍不住好奇,把 ...

  6. 程序设计编程题目(持续更新)

    c语言题目 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,它是这样定义的:"水仙花数"是指一个3位数,它的各位数字的立方和等于其本身,比如,153= 13 +5 ...

  7. python - 啃书 第七章 模块、包和库 (一)

    概述 在Python中,一个模块(Module)是一个以.py结尾的Python文件,包含了Python对象和语句. 在python中,一切皆对象.数字.字符串.元组.列表.字典.函数.方法.类.模块 ...

  8. 千年虫与2038年问题

      1999年12月31日的夜晚,人类即将迎接第二个千禧之年的到来,大家喜气洋洋地等待新年钟声的敲响.然而有那么一批人此时此刻却紧张不已,因为过了十二点钟,世界各地的政府和金融系统可能会在一瞬间崩溃. ...

  9. 2038年危机!“Unix千年虫”

    2000年到来前,"千年虫"bug曾经引发了很大的恐慌,甚至不少影视剧中都有夸大的描写.不过在紧急磋商和"打补丁"之后,软硬件"无法正确处理2000年 ...

最新文章

  1. 仿照jquery的方式实现的tabs和focus
  2. BZOJ - 3578: GTY的人类基因组计划2
  3. java atm模拟系统_Java RPC模式开发一个银行atm模拟系统
  4. 今晚直播 | 商汤科技X-Lab刘宇:神经网络结构与大规模优化方法
  5. 用100行python代码发现语音识别文本错误词,并将结果和正确词一一对应
  6. C语言malloc,free的用法
  7. SAP Spartacus List Component 里定义的待显示 Popover 内容,如何传递到 Popover Component 里的?
  8. [Json] C#ConvertJson|List转成Json|对象|集合|DataSet|DataTable|DataReader转成Json (转载)...
  9. dubbo provider异步_Dubbo相关面试题
  10. 【英语学习】【English L06】U06 Banking L3 Do you have a credit card?
  11. php header是什么,学习猿地-php header什么意思
  12. 【Renpy】renpy游戏引擎制作的游戏拆包及汉化教程
  13. Linux系统U盘怎么格式化,u盘怎么格式化各系统教程
  14. 【肌电信号】肌电信号处理系统含Matlab源码
  15. oracle vm virtualbox无网络连接_VirtualBox 安装 Windows 2000/XP 测试
  16. 三菱PLC与欧姆龙PLC通讯
  17. 微信公众号+商户平台参数配置
  18. 台式计算机网卡型号怎么查找,怎么确定台式机无线网卡驱动版本 台式机无线网卡驱动版本查看方法...
  19. 根据输入的姓氏,随机获取对应的男生和女生姓名
  20. 知识管理选石墨、语雀 or Baklib

热门文章

  1. S君 被父母毁掉的一生 r瓴
  2. 激扬十载,筑梦远航|智和信通2022踔厉奋发新征程,笃行不怠向未来
  3. linux arm上实现插入U盘自动运行的设计
  4. 天津轻工职业技术学院计算机专业怎么样,天津轻工职业技术学院可以转专业吗,天津轻工职业技术学院新生转专业政策...
  5. DDD兴起的原因,以及与微服务的关系
  6. Flash新手教程:打造拟真生态水族鱼缸-为鱼缸照片添加效果
  7. 太阳宇宙线:太阳质子模型
  8. 渠道暗战:体育服鞋企业的《鸿门宴》(转)
  9. linux 创建子进程,linux中fork同时创建多个子进程的方法(一)
  10. “2017面向对象程序设计(Java)第十一周学习总结”存在问题的反馈及教学安排...