计算机可能算错吗?

计算机会出错,有可能是:1、计算(包括但不限于浮点、整数计算)出错;2、内存存储的数据出错;3、数据在传输过程中出错。具体来说:第一种情况:计算出错这种事情Intel就出现过,是最早的奔腾处理器,是浮点计算时出的问题。当时炒作的非常厉害,Intel也趁机给自己打了广告,这件事情有很多报道,最终后果是Intel召回了那个批次的处理器。下面链接是一个介绍:臭名昭著的Bug们之二:Intel 奔腾浮点除Bug实际上CPU做计算的时候出错概率还是有的,但很多情况下这种出错并不致命,所以很难被人发现。但在关键领域,比如航空航天方面,就很危险。航天器的做法是:弄三台计算机(有些时候甚至是4个或者更多),一起算,如果其中一个结果与其它的不同,那么就选择多数的那个结果。其实这种风险也是存在的,因为仲裁计算机也可能出错,并且三台同时出错的时候也是存在的,但目前的技术也只能做到这一点了。第二种情况:概率也不低,实际上可能我们现在用的计算机就可能发生过,通常是内存中一个bit(位)由1变成0,或者由0变成1,这种被称为位翻转的错误,可能是内存自身的原因,可能是外部的电磁干扰导致的,在太空中可能是因为宇宙射线或者带电粒子导致的。同样的,如果这种事情发生在一般的计算机上,可能翻转的位置恰好是不重要的数据,我们可能不会发现,如果发生在关键位置,最多就是死机了。在工业控制、航空航天的领域,一般是用带CRC校验的内存来解决。这种内存被成为ECC内存(ECC内存_百度百科),服务器领域也有用到。有一篇科幻小说是讲的就是类似的事情,是刘宇昆写的《单比特错误》:单比特错误_百度百科第三种情况:硬件在传输的过程中出错,这种就太常见了,网上丢包、错包有一些就是这个原因导致的。本来正常的二进制信号突然某些位无法识别,或者校验出了问题,所以计算机系统里各种各样的总线在传输数据的时候经常都带有校验,目的就是为了纠错。以上就是计算机可能出错的情况,应该说,出错还是很常见的。
■网友
我想你问的是非硬件设计缺陷引起的错误理论上存在这种可能性
■网友
加法真不知道,浮点数除法 intel CPU出过错误,参见Pentium FDIV bug
■网友
1. CPU运算时受外部电磁干扰;2. DDR配置参数不对,运行不稳;3. ……


    推荐阅读