二进制中1的个数
来源:互联网 发布:文明6秘籍控制台mac版 编辑:程序博客网 时间:2024/06/07 03:36
题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
解题思路
思路1
定义0x01,左移进行与操作,判断1的个数。这里有一点需要注意的是,尽量通过0x01左移来实现,而不是0x8000等通过右移来实现,因为右移分为算数右移和逻辑右移,不小心写为了算数右移要出错。
思路2
n = n & (n - 1)操作是将n最右侧的1清0,可以实现统计1的个数。
public class erjinzhizhong1degeshu { public int NumberOf1(int n) { int count = 0; while (n != 0) { n = n & (n - 1); count++; } return count; } public static void main(String[] args) { System.out.println(new erjinzhizhong1degeshu().NumberOf1(-1)); }}
阅读全文
0 0
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 重温乔布斯在斯坦福大学的经典演讲------Stay Hungry, Stay Foolish
- Spring框架初探
- java文件图标变成空心J
- 光栅算法
- Automapper实现自动映射
- 二进制中1的个数
- Redis学习笔记之二 :在Java项目中使用Redis
- java InetAddress类
- Android Camera 流程学习记录(零)—— 碎碎念以及 Android 框架初识
- 最小生成树-Prim算法
- __FILE__ 与 $_SERVER['SCRIPT_FILENAME']的区别
- C++字节对齐
- 17.8.19B组总结
- 项目总结二--观看好的代码之登录--c3p0+DBUtils+BeanUtils