[AcWing 26] 二进制中1的个数
2024-09-07 18:38:04
点击查看代码
class Solution {
public:
int NumberOf1(int n) {
unsigned un = n;
int res = 0;
while (un) {
res += un & 1;
un >>= 1;
}
return res;
}
};
- 首先将 n 转化为无符号整数 un,因为有符号负数右移时会往高位补 1,而无符号整数右移时,高位补 0;
- 每次让 un & 1,得出来最后一位是否为 1,再把 un 右移一位;
最新文章
- 最强密码 (百度之星复赛 T5)
- js/jquery 回调函数的定义方法
- 使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台
- C# ManualResetEvent的使用
- unity3d学习重点记录
- 说说oracle中的面向对象与面向集合
- 添加iPhone设备的udid之后,重新生成开发证书(Development)
- Linux查看机器型号
- Java NIO类库Selector机制解析(上)
- 怎样快糙猛的开始搞Kaggle比赛
- javascript从入门到精通(二)
- javascript之Number
- android 控件的移动
- 04747_Java语言程序设计(一)_第1章_Java语言基础
- JQuery动态表格
- 运用经典方法进行横截面数据分类 笔记 (基于R)
- 新手必须掌握的Linux命令
- angular2 安装 打包成发布项目过程
- Python学习笔记十
- awk中截取IP字段