看板 Grad-ProbAsk 關於我們 聯絡資訊
※ 引述《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)
assassin88:忘記問 001101001111 他打的解答下面這一列怎來的? 03/24 21:03
按照編碼原則把檢查碼擺在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)
monkeykej:這個解答把它編碼結果寫出來,但事實上可以直接推 03/24 21:24
monkeykej:有的題目是直接給你12bit編好的結果,要你推哪個某一bit 03/24 21:25
bigrat2:謝謝指教:)請問有一個公式2^k >= data+k+1 算出k是哪一bit 03/25 09:52
bigrat2:可以算是k是第六個bit 這方法也可以使用嘛? 03/25 09:53
monkeykej:挖 不是阿~~~那個公式是算加入需要多少漢明檢查碼 03/25 10:39
monkeykej:比如說題目data為8bit 則k=4時 2^4才會大於8+4 03/25 10:40
monkeykej:故知道欲將8bit data編碼 需要4bit漢明檢查碼 03/25 10:40
bigrat2:感謝 :D 03/25 10:50