二进制中1的个数

来源:互联网 发布:mac 装虚拟机 编辑:程序博客网 时间:2024/06/06 20:17

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

解:

把一个整数减去1,再和原整数做与运算,会把该整数最右边一个1变成0,那么一个整数的二进制有多少个1,就可以进行多少次这样的操作

public class Solution {    public int NumberOf1(int n) {        int count = 0;        while(n!= 0){            count++;            n = n & (n - 1);         }        return count;    }}

0 0
原创粉丝点击