Sword to Offer-15 二进制中1的个数 ❀

  • 题目描述:
    输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。

解题思路:

数学知识:运算n = n & (n-1)相当于将n的二进制表示最右边一个1变为0

AC代码:

// One in Binary Number N

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

补充说明:

Comments


yangzail © 2020. All rights reserved.

Powered by Hydejack v8.5.2