Re: [理工] [計組] Hamming code
※ 引述《bigrat2 (MrEric)》之銘言:
: For the 8bit word 00111001, the check bits stored with it would
: be 0111 .Suppose when the word is read from memory ,the check bits
: are calculated to be 1101,What is the data word that was read from
: memory?
: sol:
: hamming code D8 D7 D6 D5 C8 D4 D3 D2 C4 D1 C2 C1
: 12 11 10 9 8 7 6 5 4 3 2 1
: 0 0 1 1 0 1 0 0 1 1 1 1
: 0111 o+ 1101 =1010 表bit是錯誤的 故從記憶體讀出的資料字語為 00011001
: 可以請問高手是怎麼看出來的
: 我還真的看不懂
: 謝謝各位
漢明碼可以更正一碼錯誤
雖然題目沒說
但是其實就是問哪一bit改變了
原本檢查碼是0111現在變1101
0111 xor 1101 意義你這樣想,因為某一碼改變了所以檢查碼跟著改變
影響的是哪些?
因為xor結果為1010
就代表"因為原本8bit中某一碼改變,導致C2及C8改變"
根據漢明碼編碼的原則,能夠同時且洽只改變這兩個檢查碼的就是8+2=10這bit
得知D6改變00111001 故推得讀出資料為 00011001
^ ^
D6 變號
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.25.160
※ 編輯: monkeykej 來自: 140.112.25.160 (03/24 20:14)
推
03/24 21:03, , 1F
03/24 21:03, 1F
按照編碼原則把檢查碼擺在2的指數次方
有4碼 就是0、1、2、3次方,也就是1、2、4、8碼
12 11 10 9 8 7 6 5 4 3 2 1
C8 C4 C2 C1 這四碼是0111
0 1 1 1
剩下的就是data的8個bit 00111001
0 0 1 1 1 0 0 1
故得到
0 0 1 1 0 1 0 0 1 1 1 1
※ 編輯: monkeykej 來自: 140.112.25.160 (03/24 21:23)
→
03/24 21:24, , 2F
03/24 21:24, 2F
→
03/24 21:25, , 3F
03/24 21:25, 3F
推
03/25 09:52, , 4F
03/25 09:52, 4F
→
03/25 09:53, , 5F
03/25 09:53, 5F
→
03/25 10:39, , 6F
03/25 10:39, 6F
→
03/25 10:40, , 7F
03/25 10:40, 7F
→
03/25 10:40, , 8F
03/25 10:40, 8F
推
03/25 10:50, , 9F
03/25 10:50, 9F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):