1

我遇到了這個問題,我無法在教科書或互聯網上找到它。看起來很獨特。設計一個計算海明距離的電路?

我想會有一些比較和加法器參與,但我不知道從哪裏開始。

+0

不是一個編程問題 - 嘗試http://electronics.stackexchange.com? –

+1

該電路必須計算兩個碼字不同的位數的數量。從技術上講,這是與計數器電路相結合的兩個字的逐位排列。位數在[相關文章]中描述(http://stackoverflow.com/questions/3815165/how-to-implement-bitcount-using-only-bitwise-operators)。將描述的計算映射到電路應該很容易。 –

+0

我投票結束這個問題,因爲它是關於電路設計而不是編程或軟件開發。 – Pang

回答

0

第一步無疑是異或兩個位集。然後你需要計算輸出中邏輯數的個數。設計電路的最佳方法是對this question中討論的破解進行完整的比喻,並在nneonneo的answer中做出完美解釋。這將導致加法器的最優樹,而不是依賴於順序計數。我們的想法是,在每一層中,您都知道如何限制輸入子集的最大可能總和以及它將適合的位數,從而消除了對進位位的需要。編程方法是爲32位而設計的,但可以輕鬆修改爲小於或大於此值。

有關計算海明重量的更多可能算法,請參閱this link