gpt4 book ai didi

c++ - 如何以另一种形式表示 (x ^ y) & 1?

转载 作者:行者123 更新时间:2023-12-03 22:52:55 26 4
gpt4 key购买 nike

我试图找到两个整数之间的汉明距离,我得到了它:

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。听起来我需要学习离散逻辑类(class)。
如何重写第二个 if 语句以使其工作?

最佳答案

!=运营商有更高的precedence&运算符,因此写入的条件被评估为 x & (1 != y) & 1 ,但你可能想要 (x & 1) != (y & 1)反而。

关于c++ - 如何以另一种形式表示 (x ^ y) & 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66362482/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com