计算机存储数据时会不会出错

会。比如,宇宙射线可以击穿内存,导致位翻转。大型超算没有 ECC 内存甚至无法开机。(目前常用的 ECC 内存是 (72, 64) SECDED 编码,可修复 64 位中的一位错,检测两位错)
■网友
会。所以有各种校验容错算法。
■网友
当然会,而且还非常容易出错,检验错误的各种算法会出现在计算机存储和通讯的各个方面,比如硬盘,每个扇区都会有额外40个byte用于存储ecc纠错码(一个扇区512byte),先进格式化每个扇区会占用额外100byte存储纠错码(一个扇区4096byte),在网络通讯中,TCP/IP协议几乎每层都会套一个crc检验码,以确保信息的正确,不正确的包都会被抛弃,至于保证信息的可靠传输,就靠滑动窗口、ARQ等方法保证。至于为什么我们感觉不了,那是因为现代计算机的检测错误的能力非常强,就拿CRC-16来说,可以检测到所有单位或者双位错误,所有奇数位的差错、所有长度小于16位的突发错误、99.998%长度多于18位的突发错误,而我们常用的是检测错误能力更强的CRC-32。如果题主如果想了解更多,可以以CRC、海明码、奇偶校验为关键词搜索。ps:因本人计算机知识均来自业余学习,难免会有疏漏,比如在上述答案中,我对纠错码的理解不深,欢迎探讨补充
■网友
各式光盘就大量应用 Reed-Solomen 编码纠错。CD 就在用 RS 码做错误校验和恢复、DVD 则是用改进的 RS-PC 码。以上可以参看 http://goo.gl/APyLw1(请自备梯子)。DVD 的码率大约 87%,也就是说,每 87 个原始 bit 将会对应到 100 个存储在光盘上的 bit。这样的话每 100 个 bit 中出现六七个 bit flip 都没事,可以校正过来。事实上,实际读取 DVD 时是会产生大量错误的;只是因为这些错误常常不连续,所以都能在信道解码时被纠正。


    推荐阅读