zoukankan      html  css  js  c++  java
  • 求整数的二进制表示1的个数

    题目:输入一个整数,求该整数的二进制表达中有多少个1。

    举例:输入10,其二进制表示为1010,有两个1,因此输出2。

    答:

    #include "stdafx.h"
    #include <iostream>
    
    using namespace std;
    
    //只限于正数(输入负数会陷入死循环)
    int CountNonnegativeOneNumber(int n)
    {
        int count = 0;
        while (n)
        {
            if (n & 1)
            {
                count++;
            }
            n = n>>1;
        }
        return count;
    }
    
    //负数与正数均可
    int CountOneNumber(int n)
    {
        int count = 0;
        unsigned int flag = 1;
        while (flag)
        {
            if (n & flag)
            {
                count++;
            }
            flag = flag<<1;
        }
        return count;
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        cout<<CountNonnegativeOneNumber(110)<<endl;
        cout<<CountOneNumber(110)<<endl;
        return 0;
    }

    运行界面如下:

  • 相关阅读:
    移动端调试解决方案-转载
    移动端调试工具-Weinre
    css颜色大全-转载
    目录
    多版本python import 问题解决方案
    annoy安装
    word2vec
    GBDT
    Adaptive Boosting
    融合模型Aggregation
  • 原文地址:https://www.cnblogs.com/venow/p/2656882.html
Copyright © 2011-2022 走看看