怎么获取一个数字中的1的个数
2016-12-03 11:23
267 查看
最近在网上看到一个获取数字中1的个数的算法,感觉很有用,就记录下来:
/* 基本思路: 从低位往高位计数,利用逻辑与&特征,相同为0,不同为1, 将 i 与 i - 1进行 & 运算,这样每次可以计算一个低位,同时有往高位递归 */ int get_number_1_count(int i) { int count = 0; while(i) { //i 不为0,说明有1,计数++ ++count; //重置低位为0, 得到高位 i = i & (i - 1); } return count; }
相关文章推荐
- 如何获取一个int型数字的位数
- 软件开发者面试百问-----有一个数组,里面是从1到1,000,000的整数,其中有一个数字出现了两次,你怎么找出那个重复的数字?
- 获取一个字符串里的第一个数字的位置
- 怎么区分一个字符串中的英文字母和数字
- java程序:在排序好的数组中添加一个数字,将添加后的数字插入到数组合适的位置。怎么写啊?
- 文本筐怎样让它只能输入数字(以及怎么只能输入一个小数点和数字)
- ECshop循环中获取一个会自动增加的数字
- 最近想做一个音乐播放器,苦于不知道怎么获取音频文件的tag信息,查了很多资料,终于稍微有点眉目
- c++中怎么判断一个string类型的字符串变量是否为数字?
- DDK怎么生成一个随机的数字
- 计数排序——有一个数组,里面是从1到1,000,000的整数,其中有一个数字出现了两次,你怎么找出那个重复的数字?
- 怎么根据坐标原点(经纬度)与距离值获取一个方形区域
- 获取一个数字的个位、十位、百位的函数代码
- 给定一个数字,怎么判断它是不是回文形式的?
- 模拟String的indexOf方法和获取一个数字的二进制里的1的个数的
- 【C#食谱】【风味小吃】菜单6:获取一个数字的高字位值或低字位值
- 文本框 只能输入数字 金额 中文 英文 字母 (以及怎么只能输入一个小数点和数字)
- 怎么获取一个类型的所有字段的名字 和获取给予数据相应的值
- 从字符中随机获取一个字符,提示用户输入数字,或是大写字母,或是小写字母,如果用户猜的数字正确,提示用户,恭喜你猜对了,否则提示输入大了或者输入小了
- android怎么获取一个SD卡指定文件夹的图片Uri uri有关问题