2. 海明碼
2) 實現
計算機中的資料都是用0、1表示的,在物理層面,就是高電平和低電平,這就存在資料出錯的可能性。
首先講資料進行分組,比如8位是一組,每一組對應乙個校驗碼位。如果8位資料有奇數個1,那麼校驗碼位就是1,如果8位資料位有偶數個1,那麼校驗碼位就是0。
第一,如果是兩位資料位同時發生錯誤,校驗位不變,就檢測不出來了。
第二,沒有辦法糾正錯誤
海明碼是可以糾正錯誤的一種校驗碼,但是只能糾正一位錯誤。
海明碼是通過推理排除的方法來糾正錯誤的。假設資料位有k位,校驗位是n位,那麼我們需要滿足k + n + 1 <= 2^n,也就是說,校驗碼也有可能出現錯誤。
下面我們假設資料位有4位,校驗位有3位。
(1) 計算校驗位
3位校驗碼分別計算排除第三位資料位、排除第二位資料位、排除第一位資料位的校驗碼。校驗碼的計算可以使用奇偶校驗。
(2) 校驗
進行校驗的時候,如果d1出錯了,則p1和p2校驗失敗。如果d2出錯了,則p1和p3校驗失敗。如果d3出錯了,則p2和p3校驗失敗。如果d4出錯了,則p1、p2和p3校驗都失敗。
如果是校驗位出錯,則就是對應的校驗位一位出錯。
我們依舊假設4位資料位3位校驗位
第一步,將所有位進行編號,並把編號轉換為二進位制
第二步,選取2的整次冪作為校驗位1、2、4,剩下的作為資料位
第三步,計算校驗位。p1選取二進位制倒數第一位為1的編號位進行計算。p2選取二進位制倒數第二位為1的編號位進行計算。p3選取二進位制倒數第三位為1的編號位進行計算。
資料校驗之海明碼
在計算機的世界裡,所有資料都以二進位制的形式存在,而網際網路的出現讓計算機之間的溝通成為可能,它們彼此通過相互傳遞資料實現對話.那怎麼確保一台計算機向另一台計算機傳送的資料沒有因為網路波動造成資料跳變呢?因此為了確保每台計算機接受到的資料都是準確無誤的,我們需要創造一種校驗機制以保證傳輸資料的正確性...
java 奇偶校驗
奇校驗 param bytes 長度為8的整數倍 param parity 0 奇校驗,1 偶校驗 return throws exception public static byte parityofodd byte bytes,int parity throws exception if par...
奇偶校驗原理
奇偶校驗原理 通過計算資料中 1 的個數是奇數還是偶數來判斷資料的正確性。在被校驗的資料後加一位校驗位或校驗字元用作校驗碼實現校驗。校驗位的生成方法 奇校驗 確保整個被傳輸的資料中 1 的個數是奇數個,即載荷資料中 1 的個數是奇數個時校驗位填 0 否則填 1 偶校驗 確保整個被傳輸的資料中 1 的...