Visual Studio 2010C++に実装しています
2つのバイナリ配列があります。例えば、
array1[100] = {1,0,1,0,0,1,1, .... }
array2[100] = {0,0,1,1,1,0,1, .... }
との間のハミング距離を計算するには、との結果を格納
します。array1
array2
array3[100]
xor
array1
array2
1
次に、のビット数を数える必要がありますarray3
。これを行うために、私は__popcnt
命令を使用できることを知っています。
今のところ、私は以下のようなことをしています:
popcnt_result = 0;
for (i=0; i<100; i++) {
popcnt_result = popcnt_result + __popcnt(array3[i]);
}
良い結果を示していますが、遅いです。どうすれば速くできますか?