300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 如何判断一个数的二进制中1的个数(num = (num - 1))

如何判断一个数的二进制中1的个数(num = (num - 1))

时间:2019-10-09 05:55:49

相关推荐

如何判断一个数的二进制中1的个数(num = (num - 1))

//可以用下面的方法int count_one(int num){int count = 0; //记录1的个数while (num){++count;num &= (num - 1); }return count;}

使 num=10;

num=10= 1010B

num-1=9= 1001B

执行:num&=(num-1); //num=num&(num-1) //目的是去掉二进制末尾的1

&运算之后 num=1000B=8

因为num!=0 所以接着循环

再执行:num&=(num-1);

num=8 = 1000B

num-1=7 = 111B

&运算之后 num=0000=0

此时的count中就是二进制中1的个数。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。