二进制中1的个数
来源:互联网 发布:南宁扶贫云数据平台 编辑:程序博客网 时间:2024/06/05 19:43
//输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
#include<vector>#include<iostream>using namespace std;int NumberOf1(int n) { int count=0; while(n!=0){ count++; n=n&n-1;//妙用 } return count; }void main(){ cout<<NumberOf1(-1); while(1);}
巧在n&n-1上,每次去掉右侧的1
其他妙用还有: 判断一个数是否是2的方幂:
if( n > 0 && (n & (n - 1)) == 0 )
阅读全文
0 0
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 与或树的盲目搜索和启发式搜索
- NOIP2017
- bat脚本常见命令意义
- 分别在windows和linux上编译cjson为动态链接库,用在loadrunner中解析json
- java.net.SocketTimeoutException: failed to connect to /10.0.2.2 (port 8080) after 10000ms
- 二进制中1的个数
- C++虚函数与函数的执行顺序
- OKvis
- 指针和二维数组补充 和字符串
- 第二题 成绩排序 (九度 2) P11
- 有监督 与 无监督的区别 何时采用 有监督 or 无监督
- (Python)异常处理
- 测试前的准备:搭建测试环境
- ASI(Automatic semicolon insertion-自动分号插入)