计算二进制中1的个数
来源:互联网 发布:汽车故障检测软件 编辑:程序博客网 时间:2024/06/02 13:13
int countones1(unsigned int n){ int ones = 0; while(0 < n) { ones += (n & 1); n >> 1; } return ones;}
复杂度O(logn)
int countones2(unsigned int n){ int ones = 0; while(0 < n) { ones++; n &= n-1; } return ones;}
复杂度O(countOnes(n))
#define POW(c) (1 << (c))#define MASK(c) (((unsigned int)-1) / (POW(POW(c)) + 1)) #define ROUND(n, c) (((n) & MASK(c)) + (((n) >> POW(c)) & MASK(c)))int countOnes3(unsigned int n){ n = ROUND(n, 0); n = ROUND(n, 1); n = ROUND(n, 2); n = ROUND(n, 3); n = ROUND(n, 4); return n;}
复杂度为O(log2(W)),W=log2(n)为整数的位宽,即为O(loglogn)
阅读全文
0 0
- 计算二进制数中1的个数
- 计算二进制中1的个数
- 计算二进制数中1的个数
- 计算二进制中1的个数
- 计算二进制数中1的个数
- 计算二进制数中1的个数
- 计算二进制中1的个数
- 计算二进制中1的个数
- 一、计算二进制中1的个数
- 365-计算二进制中1 的个数
- 计算二进制中1的个数
- 计算二进制中1的个数
- 计算二进制数中1的个数
- 计算二进制中含有1的个数
- 计算二进制中1的个数
- 计算二进制中1的个数和0的个数
- 计算二进制数中1的个数的快速算法
- 计算二进制int型中“1”的个数的算法
- Jzoj4732 函数
- 函数指针——typedef函数指针
- 第一篇博客(非技术文)
- 配置qnx6.6中screen 环境变量
- scrollview嵌套listview产生的滑动冲突(recyclerview)
- 计算二进制中1的个数
- CSS揭秘-1
- 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest G. Orientation of Edges
- 物联网系统1.0(局域网)
- unity渲染队列render quaue
- php 过滤html标记属性类
- 实验二线性表综合实验3
- project中的中断和相互之间的调度关系
- Oracle修改字符集(WE8MSWIN1252 -->ZHS16GBK或者UTF8)