首页 > 代码库 > 磁盘扇区校验和

磁盘扇区校验和

  磁盘扇区校验和的一种形式是基于扇区内所有二进制位的奇偶性。

  如果所有二进制位中的1的个数为奇数,比如11001,则在其后面增加值为1的奇偶位,变成110011;如果所有二进制位中的1的个数为偶数,比如11000,则在其后面增加值为0的奇偶位,变成110000,这样使得整个扇区的二进制位中的1的个数为偶数。

  如果扇区中有奇数位出错,则我们能检验出来,如果扇区中有偶数位出错,则我们检验不出来。也就是说,如果磁盘扇区出现了错误,我们有1/2的可能性能检验不出来。

  增加奇偶校验位数能提高检验出错误的概率。

  如果有两位校验位,第一位检验扇区的每一个字节的奇数位,第二位检验扇区的每个字节的偶数位,我们可以看成:每一个校验位检验一半扇区,那么每一个校验为检验不出错误的概率是1/2,两个校验位检验不出错误的概率就是1/4.

  如果一个扇区(假设有4096个字节)用4个字节作为检验码(32位校验位),那么只有40亿分之一的可能性检验不出错误。

磁盘扇区校验和