我想要计算两个整数的汉明距离,我使用以下代码进行操作:
int count = 0;
for(int i = 0; i < 32; i++)
{
if((x ^ y) & 1)
count++;
x >>= 1;
y >>= 1;
}
然而,它不能与以下内容一起使用:
if(x & 1 != y & 1)
当 x = 1, y = 4 时,正确的结果应该是 2。然而,第二个版本输出的是 1。听起来我需要学习离散逻辑。
如何改写第二个 if 语句以使其正常工作?
-Wparentheses
,您将收到类似于“warning: suggest parentheses around comparison in operand of '&' ”的消息。这样可以节省时间。 - chux - Reinstate Monica