本文共 377 字,大约阅读时间需要 1 分钟。
编写一个函数,输入是一个整数,返回其二进制表达式中数字位数为 ‘1’ 的个数
代码如下:int func(int n)//char ch{ int count = 0; while(n > 0) { count++; n&=(n-1); } return count;} 原理:n&(n-1) 按位与 每计算一次,低位减一
如上图中二进制8与自身减一进行按位与操作
如上图二进制3与自身减一进行按位与操作 -由此可的:
则n&=(n-1)运算的次数可以表示用来表示n的二进制中1的位数
原题链接:
转载地址:http://jwso.baihongyu.com/