关于Hamming Weight
来源:互联网 发布:淘宝上卖的假索尼电视 编辑:程序博客网 时间:2024/06/05 11:59
#
Hamming Weight即对于无符号整形变量,它的二进制表示中1的个数。这里介绍三种方法:
- 求余操作
- 使用位操作
- 位操作拓展
求余操作
这是最简单最易想到的方法,即每次除2,若余数为1,则表示存在一个1。
代码
int hammingWeight1(unit32_t n){ int num=0; while (n) { if( n % 2==1) count++; n = n / 2; } return num; }
使用位操作
对于二进制来说,右移操作同样可以达到相除的目的。与1求&操作可以判断最后一位是否为1.
代码
int hammingWeight2(unit32_t n) { int num = 0; while (n) { num += n & 1; n >>= 1; } return num; }
位操作拓展
上面的方法,对于二进制的每一位都进行了判断。为了进一步提高效率,可以让n与n-1进行&操作,结果可以消去高位上的1。
int hammingWeight2(unit32_t n) { int num = 0; while (n) { n = n&(n - 1); num++; } return num; }
0 0
- 关于Hamming Weight
- Hamming weight
- Hamming weight
- Hamming weight最优解
- Hamming Weight的算法分析
- SWAR算法:计算Hamming Weight
- Hamming Weight的算法分析
- hamming weight 汉明权重算法
- leetcode Hamming weight汉明权重计算
- variable-precision SWAR算法:计算Hamming Weight
- popcount或者hamming weight(二进制1的个数问题)
- popcount或者hamming weight(二进制1的个数问题)
- Leetcode ☞ 191. Number of 1 Bits(hamming weight)
- 191. Number of 1 Bits (Hamming weight计算)
- LinearLayout关于weight使用问题
- hamming
- hamming
- HAMMING
- Quartz.NET学习系列
- Cocos2dxActivity cannot be resolved to a type解决方案,Cocos2d-x 3.4
- 学习KNN算法体会和总结
- 如何获取最新的EI期刊杂志目录
- 19. Remove Nth Node From End of List
- 关于Hamming Weight
- iOS之PhoneGap开发环境
- strdup
- windows 用户变量和系统变量的区别
- eclipse for andriod 安装ADT
- JAVA 与 Python 变量赋值的不同
- 编写python代码
- 佟刚老师《Spring4视频教程》学习笔记(8)
- C数组,指针