c语言中a&(a-1)=?,这句话是什么意思,想干什么,在哪能用
4个回答
展开全部
a和a-1两个值进行按位与运算。如a=10,则a&(a-1)=10&9=1010 & 1001=1000=8。
更多追问追答
追问
我要知道这句话的作用,你只是带值算了一下
追答
怎么就叫只是算了一下?前面不是说了是“按位与”吗?至于想干什么,就是逻辑作用,你只给一句a&(a-1)谁也猜不出来!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
正解:这是检测a是否是2的n次幂,即a如果是2、4、8、16、32、64、128、256、512、2048、4096... 计算的结果就是0,否则就是非0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
计算一个数的二进制中1的个数:
while(a)
{ a=a&(a-1);
count++;
}
while(a)
{ a=a&(a-1);
count++;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询