從上篇部落格我們知道如何校驗海明碼,今天學習一下海明碼的糾錯。
海明碼的糾錯步驟我的理解是這樣的:
1.根據海明碼的資訊位和校驗位的分布規則,找出接收到的資料的資訊位以及校驗位;
2. 根據校驗位來異或求校驗位的接收碼;
3.判斷校正因子。將校驗的最後結果轉換成十進位制,然後將該位1變0(或0變1)即可。
例如:資訊位8位的海明碼,在接收到報文110010100000,判斷傳輸是否出錯,並求出發送端傳送的資訊位。
1. 首先進行分析2^r>=k+r+1,求得r=4;
2. 根據上篇的過程,可以知道
r3=i8⊕i7⊕i6⊕i5
r2=i8⊕i4⊕i3⊕i2
r1=i7⊕i6⊕i4⊕i3⊕i1
r0=i7⊕i5⊕i4⊕i2⊕i1
如圖所示 12
11 10
9 87 6
5 43 2
1 位數
1 10 0
0 1 0
0 資訊位
10 0
0校驗位
3.求校驗因子
校驗因子很簡單就是將得出的校驗位同校驗的資訊位再進行一次異或
s3=r3⊕i8⊕i7⊕i6⊕i5
s2=r2⊕i8⊕i4⊕i3⊕i2
s1=r1⊕i7⊕i6⊕i4⊕i3⊕i1
s0=r0⊕i7⊕i5⊕i4⊕i2⊕i1
得出的結果為s3s2s1s0=1001,轉換為10進製為9,即第九位出錯,將第九位的0改為1即可。
如果得出的結果s3s2s1s0全為0,那麼證明傳輸正確。
結論:海明碼就是這樣利用多組數字的奇偶性來檢錯和糾錯。不過這樣也只能對其中的一位資訊進行糾錯,這是它的不足之處。
計算機系統知識 一 海明碼
海明碼校驗 當計算機儲存或移動資料時,可能會產生資料位錯誤,這時可以利用漢明碼來檢測並糾錯,簡單的說,漢明碼是乙個錯誤校驗碼碼集。了解海明碼之前先了解一下異或 異或的數學符號為 計算機符號為 xor 其運算法則為 a b a b a b 如果二進位制下用1表示真,0表示假,則異或的運算法則為 0 0...
計算機系統知識 一
計算機系統由軟體和硬體組成。基本硬體系統由運算器 控制器 儲存器 輸入裝置 輸出裝置組成。運算器 控制器等部件被整合在一起統稱為 處理單元 cpu cpu的功能 程式控制 操作控制 時間控制 資料處理 cpu主要由運算器 控制器 暫存器組和內部匯流排等部件組成 運算器 由算術邏輯單元 累加暫存器 資...
計算機系統知識
1 儲存裝置形成層次結構 暫存器 l0 快取記憶體 l1 快取記憶體 l2 快取記憶體 l3 主存 l4 本地二級儲存 本地磁碟 l5 遠端二級儲存 分布式檔案系統,web伺服器 l6 儲存器層次結構的主要思想是一層上的儲存器作為低一層儲存器的快取記憶體。2 作業系統管理硬體 作業系統通過程序 虛擬...