1

私はこの質問に出くわしました。私は教科書やインターネットでそれを見つけることができませんでした。かなり独特のようだ。ハミング距離を計算する回路を設計する?

私は、コンパレータと加算器がいくつか関わっていると思いますが、どこから始めればいいのか分かりません。

+0

プログラミングに関する質問ではありません - http://electronics.stackexchange.comを試してください。 –

+1

回路は、2つの符号語が異なるビット位置の数を数えなければならない。技術的には、これはカウンタ回路と組み合わせた2つのワードのビットワイズエキソです。ビット数は[関連する投稿](http://stackoverflow.com/questions/3815165/how-to-implement-bitcount-using-only-bitwise-operators)に記載されています。説明された計算を回路にマッピングするのは容易でなければなりません。 –

+0

私はプログラミングやソフトウェア開発ではなく、回路設計に関する話題なので、この質問を議論の対象外としています。 – Pang

答えて

0

最初のステップは間違いなく2つのビットセットを排他的論理和することです。次に、出力の論理1の数を数える必要があります。あなたの回路を設計するための最良の方法は、this questionで論じられたハックの完全な類推を行い、nneonneoによってそのanswerで完全に説明されることです。これは、順次計数に頼るのではなく、最適な加算器のツリーをもたらす。アイデアは、各レイヤーで、入力のサブセットの最大可能な総和をキャップする方法と、それが適合するビット数をキャリービットの必要性を排除する方法を知っているということです。プログラミング手法は32ビット用に設計されていますが、それよりも少なくても簡単に変更可能です。

ハミングウェイトを計算するためのより多くのアルゴリズムについては、this linkを参照してください。