二进制中1的个数

  1. 题目描述
    1. 思路分析

题目描述

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

思路分析

  • 辅助变量,只有1位是1,
  • 循环,直至辅助变量为0
    • 与运算,统计1的个数
    • 辅助变量中的1左移
class Solution {
public:
     int  NumberOf1(int n) {
         int count = 0;
         unsigned int flag = 1;
         while(flag){
             //++count;
             //n = (n - 1) & n;
             if (flag & n) ++ count;
             flag = flag << 1;
         }
         return count;
     }
};

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1056615746@qq.com

💰

Title:二进制中1的个数

Count:114

Author:攀登

Created At:2019-12-26, 23:12:31

Updated At:2024-06-15, 15:53:35

Url:http://jiafeimao-gjf.github.io/2019/12/26/sword-%E4%BA%8C%E8%BF%9B%E5%88%B6%E4%B8%AD1%E7%9A%84%E4%B8%AA%E6%95%B0/

Copyright: 'Attribution-non-commercial-shared in the same way 4.0' Reprint please keep the original link and author.

×

Help us with donation