二进制中1的个数——剑指offer
来源:互联网 发布:com域名 编辑:程序博客网 时间:2024/06/06 20:22
题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
public class Main12 {/** * 该方法没有考虑到负数的情况,如果是负数就会死循环 * @param n * @return */public static int NumberOf1(int n) {int sum = 0;while (n != 0) {if ((n & 1) != 0)sum++;n = n >> 1;}return sum;}/** * 该方法为了避免死循环,首先把n和1与运算,判断n的最低位是不是1, * 接着把1左移一位得到2,判断n的次低位是不是1.。。。 * 缺点是不管n的值是多少都要循环32次 * @param n * @return */public static int NumberOf2(int n) {int sum = 0;int flag = 1;while (flag != 0) {if ((n & flag) != 0)sum++;flag = flag << 1;}return sum;}public static int NumberOf3(int n) {int sum = 0;while (n != 0) {sum++;n = n & (n - 1);}return sum;}public static void main(String[] agrs) {System.out.println(NumberOf3(5));}}最后一种方法
、
0 0
- 《剑指offer》——二进制中1的个数
- 剑指offer——二进制中1的个数
- 剑指offer——二进制中1的个数
- 剑指offer——二进制中1的个数
- 二进制中1的个数——剑指offer
- 剑指offer——二进制中1的个数
- 剑指offer——二进制中1的个数
- 剑指offer——二进制中1的个数
- 剑指offer——二进制中1的个数
- 剑指offer——11.二进制中1的个数
- 剑指Offer—11—二进制中1的个数
- 剑指offer—二进制中1的个数
- 剑指offer—二进制中1的个数
- 《剑指offer》—11、二进制中1的个数
- 剑指offer(11)—二进制中1的个数
- 剑指offer—二进制中1的个数
- 剑指offer—二进制中1的个数
- 剑指offer:二进制中1的个数
- android alertdialog不能弹出弹窗问题
- [算法]2016.9.4
- java集合类
- Java基础零碎知识
- 第三方登录之QQ登录集成(二)
- 二进制中1的个数——剑指offer
- java异常类处理
- [MFC] 对话框文件拖拽
- php://input的细节问题
- final finally finalize三者有什么区别
- AutoItLibrary封装上传文件
- 复管陶笛简介
- Android Manifest 节点和权限描述大全
- typeof运算符---JavaScript