海明碼:
海明碼是利用奇偶性來檢錯和糾錯的校驗方法。在資料位之間插入r個校驗位,通過擴大碼距來實現檢錯和糾錯。
海明校驗:
1、確定校驗位的個數:
設:n為待傳送海明碼的總位數,k是有效資訊位數,r是校驗位個數(分成r組作奇偶校驗,能產生r位檢錯資訊)
校驗位的個數r應滿足公式n=k+r ≤ 2^r-1
2、確定資料位與校驗位在海明碼中的位置。
在海明碼中,校驗位的位號為2^i,即1、2、4、8、16……其餘部分用資料位填充。
3、通過校驗關係,確定各校驗位的值。
資料位的校驗碼確定:位號為i的校驗碼,是位號之和等i的資料位的校驗位,如下表。
海明碼每位所占用的校驗位 每個校驗位所校驗的數字
例如,對於7位的資料位,進行海明校驗需要4個校驗位。令資料位為d0、d1、d2……d6 。校驗位為p1、p2、p3、p4 。形成的海明碼為h1、h2、h3……h11 。如下圖。
p1偶校驗:p1、d0、d1、d3、d4、d6
即p1=d0 xor d1
xor d3 xor
d4 xor
d6p2偶校驗:p2、d0、d2、d3、d5、d6
即p2=
d0 xor d2 xor
d3 xor
d5 xor
d6p3偶校驗:p3、d1、d2、d3
即p3=
d1 xor d2 xor
d3p4偶校驗:p4、d4、d5、d6
即p4=
d4xor d5 xor d6
若採用奇校驗,則將各位校驗位的偶校驗值取反即可。
4、檢驗錯誤。做以下計算:
g1=p1 xor
d0 xor d1
xor d3 xor
d4 xor
d6g2=
p2 xor
d0 xor d2 xor
d3 xor
d5 xor
d6g3=p3 xor
d1 xor d2 xor
d3g4=
p4 xor
d4xor d5 xor
d6若採用偶校驗,g4g3g2g1全為0時表示接收到的資料無錯誤(奇校驗則應全為1)。當g4g3g2g1不全為0時說明發生了差錯,而且g4g3g2g1的十進位制值指出發生錯誤的位置。例如g4g3g2g1=1010,則說明h10(d5)出錯了,取反即可糾正。
Effective C 第三版 學習筆記
1.讓自己習慣c explicit為顯示構造說明符 僅c 用來控制不必要的隱式型別轉換,目前我只知道explicit用於類宣告的建構函式宣告中。舉個栗子 class a 以下宣告是合法的 a c 1 等效於a c a 1 a d c 如果將類的建構函式宣告為explicit,則先前的宣告將是非法的。...
笨辦法學 Python (第三版)學習筆記03
歡迎閱讀 笨辦法學 python 第三版。本書中譯本發布於 英文原版位址為 習題結果 1.句尾加 可讓 在同一行 2.大於等於 greater or equal 3.是取餘數的意思,100 25 3 4 就是100 75 4 100 3 75 4 18餘數為3 4.比較就是true or false...
程式設計師面試寶典(第三版)部分題目解答
純屬自己的解答,愛理不理,勿噴!我是問題分割線 轉換字串格式為原來字串裡的字元 該字元連續出現的個數 g2007 void stringconvert1 const char string,char cvtstring p pcv cnt 0 輸入 666666 輸出 66 輸入 112223498...