海明碼

https://blog.csdn.net/flyyufenfei/article/details/72235748編碼

 

海明碼(也叫漢明碼)具備一位糾錯能力。本文以1010110這個二進制數爲例解釋海明碼的編碼和校驗方法。.net

  編碼blog

  肯定校驗碼的位數xtable

  設數據有n位,校驗碼有x位。則校驗碼一共有2x種取值方式。其中須要一種取值方式表示數據正確,剩下2x-1種取值方式表示有一位數據出錯。由於編碼後的二進制串有n+x位,所以x應該知足二進制

2x-1 ≥ n+x   方法

  使不等式成立的x的最小值就是校驗碼的位數。在本例中,n=7,解得x=4。數據

  肯定校驗碼的位置tab

  校驗碼在二進制串中的位置爲2的整數冪。剩下的位置爲數據。如圖所示。ps

位置 1 2 3 4 5 6 7 8 9 10 11
內容 x1 x2 1 x3 0 1 0 x4 1 1 0
  • 校驗位置選擇原則:第i位校驗碼從當前校驗碼位開始,每次連續校驗i位後再跳過i位,而後再連續校驗i位,再跳過i位,以此類推。肯定每一個校驗碼所校驗的比特位,i爲校驗位在海明碼中的下標。
相關文章
相關標籤/搜索