发布网友 发布时间:2024-12-18 12:06
共4个回答
热心网友 时间:2024-12-18 14:34
这个是删除一个bit,每次a&(a-1)的结果会比a的二进制少一个bit,用个循环操作就可以算出有a多少个bit了
热心网友 时间:2024-12-18 14:40
计算一个数的二进制中1的个数:
while(a)
{ a=a&(a-1);
count++;
}
热心网友 时间:2024-12-18 14:36
a和a-1两个值进行按位与运算。如a=10,则a&(a-1)=10&9=1010 & 1001=1000=8。
热心网友 时间:2024-12-18 14:37
正解:这是检测a是否是2的n次幂,即a如果是2、4、8、16、32、、128、256、512、2048、4096... 计算的结果就是0,否则就是非0