c语言中a&(a-1)=?,这句话是什么意思,想干什么,在哪能用

发布网友 发布时间: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

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com