科普一下:Y2K千年虫问题

这周没有给定的博客主题,我就来科普科普在复习过程中遇到的感兴趣的问题吧~

Year 2000 problem(千年虫问题)

The Year 2000 problem (also known as the Y2K problem, the Millennium bug, the Y2K bug, or simply Y2K) was a problem for both digital (computer-related) and non-digital documentation and data storage situations which resulted from the practice of abbreviating a four-digit year to two digits.

【千年虫的来历】

  两千年问题始于1960年代,当时计算机内存和外部存储介质的成本很高,大多数数据处理需要借助于用穿孔卡片,它用80行文本表示所储存的数据。为了节省硬件成本,葛丽丝·霍普在Harvard Mark I上,以6位数字来存储时间,即年、月、日各两位。这个习惯被COBOL继承下来,传播到整个计算机程序界。

  那个时候的编程语言,如COBOL和RPG,使用ASCII码和EBCDIC编码表示数据。如果用四位数字表示年份,就要多占用储存器空间,就会使成本增加,因此为了节省存储空间,计算机系统的编程人员采用两位数字表示年份,随着计算机技术的迅猛发展,虽然后来存储器的价格降低了,但在计算机系统中使用两位数字来表示年份的做法却由于思维上的惯性势力而被沿袭下来。对大多数程序员来讲,他们并不认为所编写的软件会持续使用很多年。

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

【几个典型的Y2K时间】

  • 1999年1月1日
  • 1999年4月9日(1999年的第99日)
  • 1999年9月9日
  • 1999年12月31日
  • 2000年1月1日
  • 2000年2月28日
  • 2000年2月29日
  • 2099年1月1日
  • 2099年4月9日
  • 2099年9月9日
  • 2099年12月31日
  • 2111年11月11日

9 September 1999

Even before 1 January 2000 arrived, there were also some worries about 9 September 1999 (albeit less than those generated by Y2K). Because this date could also be written in the numeric format 9/9/99, it could have conflicted with the date value 9999, frequently used to specify an unknown date. It was thus possible that database programs might act on the records containing unknown dates on that day. Data-entry operators commonly entered 9999, into required-fields for an unknown future-date, (e.g. a termination date for cable-television or telephone service), in order to process computer forms using CICS software. Somewhat similar to this is the end-of-file code 9999, used in older programming languages. While fears arose that some programs might unexpectedly terminate on that date, the bug was more likely to confuse computer operators than machines.

Year 2038 problem

Main article: Year 2038 problem

The original Unix time datatype (time_t) stores a date and time as a signed long integer (on 32 bit systems a 32-bit integer) representing the number of seconds since 1 January 1970. During and after 2038, this number will exceed 231 − 1, the largest number representable by a signed long integer on 32 bit systems, causing the Year 2038 problem (also known as the Unix Millennium bug or Y2K38). As a long integer in 64 bit systems uses 64 bits, the problem does not exist on 64 bit systems that use the LP64 model.

=======================================================

总的来说,千年虫问题起源于最开始的程序设计过程中对时间表示的疏忽,酝酿出了如今这一庞大的问题。也许这在当年看来不过是一个不能再简单的问题,是一个小小的程序,却对全世界造成了不可思议的影响。看来,程序员真的是有改变世界的潜质!没准身边的谁谁谁正在悄悄的影响着整个世界呢~哈哈~滚回去复习啦~

附:阅读资料来源:维基百科Wikipedia http://en.wikipedia.org/wiki/Year_2000_problem

时间: 2024-10-19 09:46:53

科普一下:Y2K千年虫问题的相关文章

Y2K问题

关于第五章 团队和流程 2.6 特工团队中所提到的Y2K问题,第一次接触到这个名词去百度了,它的意思是这样的:year 2K problem,又称千年虫问题.主要原因是早期的软件大多以两位数字来记录年份,导致在公元2000年到来时,这些程序得表示方法和相应逻辑都要修正,才能避免出现的问题. 阅读了一篇来自CSDN博客的一篇文章,"隐藏的BUG探讨--从'Y2K'问题到'2038' 年问题",博主:Mikeoperfect.千年虫是在计算机中对于年份和日期的表示方式不完整而引起的程序出错

千年虫 2038问题

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

“千年虫问题”、“2038年问题”、什么是闰年

(1)先温习一下什么是闰年(Leap Year) 闰年是公历中的名词.闰年分为普通闰年和世纪闰年. 普通闰年:能被4整除但不能被100整除的年份为普通闰年.(如2004年就是闰年,1999年不是闰年); 世纪闰年:能被400整除的为世纪闰年.(如2000年是世纪闰年,1900年不是世纪闰年); 闰年(Leap Year)是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的.补上时间差的年份为闰年.闰年共有366天(1-12月分别为31天,29天,31天,30天,31天,30天

科普:一片晶圆可以切多少个芯片?

一片晶圆到底可以切割出多少的晶片数目?这个要根据die的大小和wafer的大小以及良率来决定的. 目前业界所谓的6寸,12寸还是18寸晶圆其实就是晶圆直径的简称,只不过这个寸是估算值.实际上的晶圆直径是分为150mm,300mm以及450mm这三种,而12寸约等于305mm,为了称呼方便所以称之为12寸晶圆. 国际上Fab厂通用的计算公式: 聪明的读者们一定有发现公式中:π*(晶圆直径/2)的平方 不就是圆面积的式子吗?再将公式化简的话就会变成: X 就是所谓的晶圆可切割晶片数(dpw:die

月攒亿级热度才上榜,科普、资讯内容成4月秒拍榜单黑马

依靠近20亿次播放量,魔力TV实现了在MCN榜上的蝉联:6亿播放的二更视频重回原创榜首:一手video竟然压过了央视新闻.人民日报.澎湃新闻等一众王牌媒体,成为风云榜上的状元--5月2日,秒拍发布2017年4月份系列榜单上,呈现出一个极其强烈的内容创业趋势-- 一个月没个亿级的热度,都不好意思在榜单上去排队. 文/张书乐 TMT行业观察者.游戏产业时评人,人民网.人民邮电报专栏作者 热度.画风.话锋--怎样的内容最有眼球 纵观风云榜.美食榜.时尚榜.影响力榜.原创榜和MCN榜6大榜单,有一个印象

《癌症·真相:医生也在读》:癌症新药专家的癌症防治科普,重点是免疫疗法。四星推荐。

作者是美国诺华制药癌症新药开发部资深研究员,本书是作者对最新的癌症药物研发的科普.重点是免疫疗法和靶向治疗(估计免疫疗法是作者的研究方向).此外还有对癌症相关的传言的辟谣,和如何到美国去看病的指南. 行文风格通俗易懂,可读性比癌症科普名著<众病之王>要高一颗星.给4星是因为毕竟是个人的著作,权威性略差.期望能有权威的机构来写类似的书. 根据书中对一些时事的引用来判断,大部分内容应该是2015年写的. 以下是书中一些重要内容的摘抄: 1:我做癌症研究已经超过20年了.我可以非常诚恳地说,迄今为止

2038年危机!“Unix千年虫”

2000年到来前,“千年虫”bug曾经引发了很大的恐慌,甚至不少影视剧中都有夸大的描写.不过在紧急磋商和“打补丁”之后,软硬件“无法正确处理2000年问题”的千年虫危机算是平稳度过了.但……事实真的如此吗?对于Unix类操作系统来说,它们其实还面临着同样的问题,那就是——2038年危机!(又称“Unix千年虫”)!!Torvalds对于Linux内核中潦草的Unix千年虫bug补丁感到很不爽.该操作系统底层的日期数值,存储在一个32位的整数签名中,而起始点则是1970年1月1日(还记得iOS里往

POJ 2586 Y2K Accounting Bug(枚举大水题)

Y2K Accounting Bug Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10674   Accepted: 5344 Description Accounting for Computer Machinists (ACM) has sufferred from the Y2K bug and lost some vital data for preparing annual report for MS Inc

【游戏科普】使用心理学法则创建优秀的用户界面

原文:GameDev =================================================================== 实践证明,心理学的法则可以适用于游戏的用户界面的设计. 当你开始设计游戏的用户界面时,无论它是一个等级选择菜单,或是游戏内的地图,或是生命条,都很重要.完美的UI设计是无形的,也就是说,用户并不是真的在与UI的工作机制进行拼杀 - 用户界面仿佛消失一般,而玩家专注于游戏中的世界. 我最喜欢的类比就是开车的时候.当你第一次学习如何驾驶时,你需