求整数的位模式中包含几个1
来源:互联网 发布:剑三遗失的尊敬淘宝 编辑:程序博客网 时间:2024/06/07 20:02
求整数的位模式中包含几个1。
////#include <iostream>#include <assert.h>#include <algorithm>#include <hash_set>#include <vector>#include <string>#include <assert.h>#include <time.h>using namespace std;// O(n)int bitCount(int x){int sum=0;while (x){x &= (x-1);sum++;}return sum;}// O(logn)int bitCount2(int x){x=((x&0xAAAAAAAA)>>1)+(x&0x55555555);x=((x&0xCCCCCCCC)>>2)+(x&0x33333333);x=((x&0xF0F0F0F0)>>4)+(x&0x0F0F0F0F);x=((x&0xFF00FF00)>>8)+(x&0x00FF00FF);return x;}int main(){int i,x;time_t ib,ie;int N=1000;// bitCountib=clock();while (N--){for (i=0; i<10000; i++){x=bitCount(i);}}ie=clock();cout<<"bitCount: "<<ie-ib<<" ms"<<endl;// bitCount2N=1000;ib=clock();while (N--){for (i=0; i<10000; i++){x=bitCount2(i);}}ie=clock();cout<<"bitCount: "<<ie-ib<<" ms"<<endl;// checkfor (i=0; i<50; i++){cout<<i<<" bitCount(i) = "<<bitCount(i)<<" bitCount2(i) = "<<bitCount2(i)<<endl;}return 0;}
- 求整数的位模式中包含几个1
- 求整数的二进制形式中包含1的个数
- 求32位整数二进制中1的个数
- 十进制整数如何利用位操作求的该整数的二进制中1的个数
- 求一个整数包含1的个数的代码
- 用位运算求给定整数的二进制表示中1的个数
- 求一个32位2进制整数中 1的个数算法
- 快速求一个32位无符号整数二进制中为1的个数
- 位运算实现反转字节和求二进制整数中1的个数(无循环)
- 快速求一个32位无符号整数二进制中为1的个数
- 求32位无符号整数中比特为1的二进制位数
- 位运算之求整数二进制表示中1的个数
- 求二进制包含的1的个数(位操作)
- 求整数A和整数B的二进制表示中有多少位是不同的?
- 求32位整数二进制1的个数
- 求任意整数中1的个数
- 求整数中1的个数
- 求一个整数的二进制最高位
- 程序设计的常用算法
- android之应用程序LED(1)
- asp.net(c#) Color颜色的转换
- 数据类型转换
- C#一个关于反序列化的小问题 http://www.csharpwin.com/csharpspace/12720r6124.shtml
- 求整数的位模式中包含几个1
- maxleng的专栏
- oops的解读方法-----怎么通过oops查找源码行
- 读<代码揭秘>总结
- Java乔晓松-文件的上传和下载(Web)案例
- java中全角半角字符的相互转换
- java native
- Groovy快速入门
- iphone之ActionSheet介绍