一行代码损失数亿美元!来看看编程史上的著名bug!

作为程序员最大的敌人,bug是很多程序员挥之不去的噩梦,一行小小的代码bug,就可能造成致命的问题,造成整个系统的崩盘。今天,菜鸟哥就为大家分享,编程史上的最著名的5个bug。

1.欧洲航天局阿丽亚娜5号的爆炸

航天器的设计和运行一直以来都是非常昂贵的。在1996年6月4日,欧洲航天局发射的阿丽亚娜5号火箭发射升空。但是在仅仅发射40秒之后,火箭便在空中发生翻滚,然后解体爆炸。

这次火箭的爆炸带来的损失是非常严重的。不仅造成了3.7亿 美元的直接损失,更重要的是,十年的心血在短短几十秒中付之东流。造成这一原因的,仅仅是一行代码的失误。

2.Windows的计算器错误

如果大家现在使用的是Windows10以下的版本,例如Windows7版本,那么大概率会有这样的问题。大家可以打开自己的windows计算器,然后输入4,取平方根。此时的结果显示为2,然后再减去2。

此时的结果是什么呢?如果测试之后,可以发现,结果往往不会是0。造成这一错误的原因在于Windows下的取平方根的操作,结果保存的是浮点数,而非整数。而最终减去2之后,得到的结果就是浮点计算得到的精度误差。

微软也承认了这个错误,并在Windows10 Build 17639 版本中修正了这个错误。因此在Windows10中运行上述计算过程,得到的结果就是0。


3.爱国者导弹拦截失败

爱国者导弹“是美国著名的地对空防御拦截导弹。但是爱国者导弹也有失算的时候。1991年的海湾战争期间,沙特阿拉伯的爱国者导弹未能及时的跟踪并拦截伊拉克的飞毛腿导弹。

飞毛腿导弹直接打中了美国军营,造成了28名士兵死亡,并有100人受伤。根据事后的调查,拦截失败的原因在于导弹系统时钟内的一个软件错误。

在此之前,爱国者导弹拦截系统已经连续工作了四天有余。因此导弹的时钟已经偏差了三分之一秒,根据速度计算,相当于600米的距离误差。由于这个时间误差,导致了雷达系统侦察到飞毛腿导弹并且预计了它的弹道。

但是拦截系统却无法找到打过来的飞毛腿导弹,导致了拦截的失败。

4.神曲《江南style》的YouTube之殇

2012年,一首来自韩国的神曲《江南style》火遍了全球,神曲一出,谁与争锋。在YouTube上,《江南style》同样也是异常的火爆,播放量蹭蹭的上涨,直接突破了YouTube最先设定的播放量上限阈值。

YouTube最初的播放量上限设定值为32位整数,也即21,4748,3647。的出现打破了这一数值,造成了YouTube上《江南style》的播放崩溃。针对这一问题,YouTube也及时的做出调整。将播放量的上限由32位整数改为了64位整数。

如今的《江南style》在YouTube上的播放量早已突破40亿,但是突破上限也只是理论上的可能了。

5.计算机2000年问题

计算机2000年问题,另一个被大家熟知的名字为“千年虫”。在上世纪的某些计算机程序系统中,年份虽然是四位数,但是系统只使用的是最后两位数来表示年份。这就造成了系统在涉及到跨世纪的日期处理运算时,就会出现错误的结果。

例如1900和2000,系统无法分辨是1900年还是2000年。进而引发各种各样的系统功能紊乱甚至崩溃。在一些需要精密计算时间的系统当中,这会造成非常大的问题。

千年虫问题,影响到了每天计算利率的银行、核电站、医院、交通等中心。全世界花费了数十亿美元来升级计算机系统并纠正这个错误。


6.总结

计算机程序可以帮助我们更好的管理世界,服务人类。但一个小小的bug也能够造成巨大的损失。因此作为程序员的我们,更要明确自己所担负的责任,认真写好每一句代码,检查出每一处bug。写出更好的代码。大家在工作中是否写出过bug导致重大的问题?欢迎在下方留言区,吱一声~

记得给个三连哦!

【菜鸟学Python】累计原创近400篇趣味干货(爬虫,数据分析,算法,面试指南,原创趣味实战,Python游戏,机器学习),欢迎一起学Python,交流指正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章