点击查看代码
class Solution {
public:
int NumberOf1(int n) {
unsigned un = n;
int res = 0;
while (un) {
res += un & 1;
un >>= 1;
}
return res;
}
};

  1. 首先将 n 转化为无符号整数 un,因为有符号负数右移时会往高位补 1,而无符号整数右移时,高位补 0;
  2. 每次让 un & 1,得出来最后一位是否为 1,再把 un 右移一位;

最新文章

  1. 最强密码 (百度之星复赛 T5)
  2. js/jquery 回调函数的定义方法
  3. 使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台
  4. C# ManualResetEvent的使用
  5. unity3d学习重点记录
  6. 说说oracle中的面向对象与面向集合
  7. 添加iPhone设备的udid之后,重新生成开发证书(Development)
  8. Linux查看机器型号
  9. Java NIO类库Selector机制解析(上)
  10. 怎样快糙猛的开始搞Kaggle比赛
  11. javascript从入门到精通(二)
  12. javascript之Number
  13. android 控件的移动
  14. 04747_Java语言程序设计(一)_第1章_Java语言基础
  15. JQuery动态表格
  16. 运用经典方法进行横截面数据分类 笔记 (基于R)
  17. 新手必须掌握的Linux命令
  18. angular2 安装 打包成发布项目过程
  19. Python学习笔记十
  20. awk中截取IP字段

热门文章

  1. dfs:x+y=z
  2. CI_CD 简单了解
  3. 面试问题之C++语言:如何避免内存泄漏?
  4. java-LinkedMap
  5. Spring与Web项目整合的原理
  6. jsp页面学习之"javascript:void(0)"的使用
  7. 安装Yarn
  8. 开发一个自己的 CSS 框架(四)
  9. IDEA安装配置Scala环境
  10. DOS控制台