海明碼校驗
當計算機儲存或移動資料時,可能會產生資料位錯誤,這時可以利用漢明碼來檢測並糾錯,簡單的說,漢明碼是乙個錯誤校驗碼碼集。
了解海明碼之前先了解一下異或:
異或的數學符號為「⊕」,計算機符號為「xor」。其運算法則為:
a⊕b = (¬a ∧ b) ∨ (a ∧¬b)
如果二進位制下用1表示真,0表示假,則異或的運算法則為:
0⊕0=0,
1⊕0=1,
0⊕1=1,
1⊕1=0(同為0,異為1)。
海明碼的編碼步驟:
1. 根據資訊位數,確定校驗位數,2r -1>k+r,其中,k為資訊位數,r為校驗位。求出滿足不等式的最小r,即為校驗位數。計算校驗位公式如表所示。 …
9 87 6
5 43 2
1 位數
… i5
i4 i3 i2
i1
資訊位 …
r3 r2
r1 r0
校驗位
2. 求校驗位。根據上面所說的計算公式求出校驗位。
3. 求海明碼。根據上面**的填充,寫出海明碼。
舉例:若有效資訊位為1101,求它的校驗位
根據上面的步驟我們可知
1. 資訊位為k=4位,那麼2r -1≥k+r,求的r=3
2. 列表。
r位的校驗位可以表示 2r 個數,和位數對齊後r0=1,r1=2,r2=4…等等,資訊位即為我們上面的1101這4位資訊,那麼我們可以畫出下面這張表 7
6 54 3
2 1位數
i4(1)
i3(1)
i2(0)
i1(1)
資訊位
r2 r1 r0
校驗位
我們知道r0=20,r1=21,r2=22
而資訊位與所對應的位數關係為3.中
i4:7=22 +21+20
i3: 6= 22 + 21
i2: 5= 22+20
i1:3 =21+20
r0就用具有出現20的資訊位表示,因此
r0=i4⊕i2⊕i1=1⊕0⊕1=0;
r1=i4⊕i3⊕i1=1⊕1⊕1=1;
r2=i4⊕i3⊕i2=1⊕1⊕0=0;
注:異或的公式裡面如果出現偶數的1,則結果為0,反之為1
4. 將得到的校驗碼輸入上表中,得出 7
6 54 3
2 1位數 1
1 01
資訊位
0 1 0
校驗位
5.綜上海明碼結果為:1100110
關於糾錯下篇介紹...
計算機系統知識 一 海明碼糾錯
從上篇部落格我們知道如何校驗海明碼,今天學習一下海明碼的糾錯。海明碼的糾錯步驟我的理解是這樣的 1.根據海明碼的資訊位和校驗位的分布規則,找出接收到的資料的資訊位以及校驗位 2.根據校驗位來異或求校驗位的接收碼 3.判斷校正因子。將校驗的最後結果轉換成十進位制,然後將該位1變0 或0變1 即可。例如...
計算機系統知識 一
計算機系統由軟體和硬體組成。基本硬體系統由運算器 控制器 儲存器 輸入裝置 輸出裝置組成。運算器 控制器等部件被整合在一起統稱為 處理單元 cpu cpu的功能 程式控制 操作控制 時間控制 資料處理 cpu主要由運算器 控制器 暫存器組和內部匯流排等部件組成 運算器 由算術邏輯單元 累加暫存器 資...
計算機系統知識
1 儲存裝置形成層次結構 暫存器 l0 快取記憶體 l1 快取記憶體 l2 快取記憶體 l3 主存 l4 本地二級儲存 本地磁碟 l5 遠端二級儲存 分布式檔案系統,web伺服器 l6 儲存器層次結構的主要思想是一層上的儲存器作為低一層儲存器的快取記憶體。2 作業系統管理硬體 作業系統通過程序 虛擬...