一、计算二进制中1的个数
来源:互联网 发布:c语言实型怎么定 编辑:程序博客网 时间:2024/05/20 20:43
1、快速法
int BitCount2(unsigned int n){ unsigned int c =0 ; while(n!=0) { n &= (n -1) ; // 清除最低位的1 c++; } return c ;}
2、平行算法
int BitCount4(unsigned int n) { n = (n &0x55555555) + ((n >>1) &0x55555555) ; // n相邻位相加 n = (n &0x33333333) + ((n >>2) &0x33333333) ; // n(以2为单位)相邻位相加 n = (n &0x0f0f0f0f) + ((n >>4) &0x0f0f0f0f) ; // n(以4为单位)相邻位相加 n = (n &0x00ff00ff) + ((n >>8) &0x00ff00ff) ; // n(以8为单位)相邻位相加 n = (n &0x0000ffff) + ((n >>16) &0x0000ffff) ; // n(以16为单位)相邻位相加 return n ; }
0x11530828的二进制表示如下:
0001 0001 1001 0011 0000 1000 0010 1000;
0 1 0 1 1 1 0 2 0 0 1 0 0 1 1 0;
1 1 2 2 0 1 1 1;
2 4 1 2
6 3
9
0 0
- 一、计算二进制中1的个数
- 计算二进制数中1的个数
- 计算二进制中1的个数
- 计算二进制数中1的个数
- 计算二进制中1的个数
- 计算二进制数中1的个数
- 计算二进制数中1的个数
- 计算二进制中1的个数
- 计算二进制中1的个数
- 365-计算二进制中1 的个数
- 计算二进制中1的个数
- 计算二进制中1的个数
- 计算二进制数中1的个数
- 计算二进制中含有1的个数
- 计算二进制中1的个数
- 计算二进制中1的个数和0的个数
- 二进制中一的个数
- 计算整数化为二进制一的个数
- Windows编程二之Windows内部运行机制详解
- Windows下死锁的简单应用
- HDU 1875 畅通工程再续(最小生成树 kruskal)
- Electron去掉边框(标题栏)并设定可拖动
- JavaScript语言精粹
- 一、计算二进制中1的个数
- UVA 12232 Exclusive-OR (带权值的并查集)
- openwrt中samba及ftp服务器设置
- android学习资料整理-----高级篇
- OGG新增投递进程
- MyEclipse-pro-2014GA 下载
- Mac下Intellij更换JDK后的配置
- 205.Interval Minimum Number-区间最小数(中等题)
- OpenCV 数据初始化空间分配