我有一个随机生成的0和1的列表,我需要选择一个比特并将其反转到相反的位置:要么是0到1,要么是1到0。按位not运算符仅适用于整数和长整型,而xor (^)运算符适用于两个整数。
Enter a population size: 4
Enter an organism length: 2
[[1, 1], [0, 1], [0, 0], [0, 0]]
[[[1, 1], [0, 1]]]
上面的代码是一个简短的用户输入程序的一部分,用户可以在其中输入pop大小和长度。该程序打印一个随机生成的数字列表,考虑到流行的大小和长度,并采用前50%,这是第二个打印的列表。现在,我需要从第二个列表中选取
我找到了此链接可计数变量中的位数。。我觉得挺酷的,但我搞不懂为什么会起作用。有人能解释一下吗?
这是代码
unsigned int v; // count the number of bits set in v
unsigned int c; // c accumulates the total bits set in v
for (c = 0; v; c++)
{
v &= v - 1; // clear the least significant bit set
}
任何帮助都是非常感谢的。