191.位1的个数

作者: 第四单元 | 来源:发表于2018-04-11 11:56 被阅读4次

题目

编写一个函数,输入是一个无符号整数,返回的是它所有 位1 的个数(也被称为汉明重量)。

例如,32位整数 '11' 的二进制表示为 00000000000000000000000000001011,所以函数返回3。

思路

位运算。数字分别和1,2,4,8……2^31做与运算,如果结果不是0说明对应位置上是1。统计个数即可。

代码

public class Solution {
    // you need to treat n as an unsigned value
    public int hammingWeight(int n) {
        int count = 0;
        int c = 1;

        for(int i = 0; i < 32; i++) {
            if((n & (c << i)) != 0)
                count++;
        }    

        return count;
    }
}

相关文章

  • 191.位1的个数

    题目 编写一个函数,输入是一个无符号整数,返回的是它所有 位1 的个数(也被称为汉明重量)。 例如,32位整数 '...

  • 191. 位1的个数

    内容 编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。 示...

  • 191. 位1的个数

    本来很简单,但是Java只能是有符号的整数,所以01011在其他语言是代表3,但是在Java中代表的是-3,直接用...

  • 191. 位1的个数

    编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。示例 1:...

  • 191. 位1的个数

  • 【D29】位1的个数&Pow(x, n) (LC 191&50)

    191. 位1的个数[https://leetcode-cn.com/problems/number-of-1-b...

  • LeetCode 191-200

    191. 位1的个数[https://leetcode-cn.com/problems/number-of-1-b...

  • leetcode 191. 位1的个数

    题目描述 编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。...

  • LeetCode 191. 位1的个数

    题目 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被...

  • 常用的位操作

    读完本文,你可以去力扣拿下如下题目: 191.位1的个数[https://leetcode-cn.com/prob...

网友评论

    本文标题:191.位1的个数

    本文链接:https://www.haomeiwen.com/subject/zkuahftx.html