我在 Visual Studio 2010 C++ 上实现
我有两个二进制数组。例如,
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]);
}
它显示了一个很好的结果,但速度很慢。我怎样才能让它更快?