【剑指offer】二进制中1的个数

来源:互联网 发布:99porn永久域名av123 编辑:程序博客网 时间:2024/06/04 18:38

题目描述

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。


解:使用 1 不断左移,然后与 n 相与,得到的结果不是 0 则增加一个 1 的数量。代码如下:

public class NumOf1 {    public static void main(String[] args) {        int i = numOf1(5);        System.out.println(i);    }    public static int numOf1(int n) {        int count = 0;        int flag = 1;        while (flag < 0) {            if ((n & flag) != 0) {                count++;            }            flag = flag << 1;        }        return count;    }}
原创粉丝点击