gpt4 book ai didi

c - 这个表达式是什么意思 "val&=val-1"

转载 作者:行者123 更新时间:2023-11-30 21:40:55 25 4
gpt4 key购买 nike

基本上试图找到汉明字符串 https://en.wikipedia.org/wiki/Hamming_distance 。我想知道这个表达的意思和作用val &= val - 1;

我知道val+=10-->val=val+10

最佳答案

val初始化为

val = x ^ y;

val是 x 和 y 的按位异或,这意味着它包含 1x 的所有位中和y不同和 0x 的所有位中和y是一样的。

现在,循环的每次迭代都会执行

val &= val - 1;

这相当于

val = val & (val - 1);

每个这样的按位与运算都会变成一个1一点val0 .

例如,假设 val 的二进制表示形式是:

1010

val - 1 的二进制表示是:

1001

执行按位与后,我们得到:

1000

因此,在循环结束时,dist包含数量1 val 的原始值中的位,这是x的位数和y不同。

关于c - 这个表达式是什么意思 "val&=val-1",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48437660/

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