zoukankan      html  css  js  c++  java
  • leetcode:Number of 1 Bits

    Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight).

    For example, the 32-bit integer ’11' has binary representation 00000000000000000000000000001011, so the function should return 3.

    分析:题意为计算32位整型数2进制表示中1的个数。

    方法还是非常多的,也很好理解:

    1、利用2进制的数学特点来

    class Solution {
    public:
        int hammingWeight(uint32_t n) {
            int count=0;
            while(n){
            if(n%2==1) count++;
            n=n/2;
            }
            return count;
        }
    };
    

    2、将每一位分别和1做与运算,计算不为0的个数即可

    class Solution {
    public:
        int hammingWeight(uint32_t n) {
            int count=0;
            while(n){
            count+=n&1;
            n>>=1;
            }
            return count;
        }
    };
    

    3、每次n&(n-1)可以将n里面的值为1的位数减少一位

    class Solution {
    public:
        int hammingWeight(uint32_t n) {
            int sum = 0;
            while (n)
            {
                n &= (n-1);
                ++sum;
            }
     
            return sum;
        }
    };
    

      

      

  • 相关阅读:
    Eclipse 添加行号
    http中 get方法 传送中文参数乱码解决办法
    第一章 java 语言概述
    Python学习
    Python学习
    Python学习
    Python学习
    Python学习
    Python学习
    Python学习
  • 原文地址:https://www.cnblogs.com/carsonzhu/p/4658278.html
Copyright © 2011-2022 走看看