美文网首页
统计整数二进制中1的个数

统计整数二进制中1的个数

作者: mmmwhy | 来源:发表于2018-03-26 10:47 被阅读157次

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

题目

实现一个函数,输入一个整数,输出该数二进制表示中1的个数

题目分析

拿到这个题目,所有人肯定立马有了思路,几个关键词立马在脑海中显现:“循环”,“右移”,“与”。然后很快写出了函数,随便输入几个数验证,没问题。。。但是这个题目需要注意的首先是整数,包括正整数和负整数,其次在python中,数据位数是一个比较模糊的概念,在程序中基本不存在,因为越位之后他会自动将int转为为long类型,所以对python程序员来说,需要提前搞明白整数的位数,或者在python语言中调用C语言,下面来列举其中的集中解法。

cpp

class Solution {
public:
    int NumberOf1(int n) {
        int count = 0;
        while (n)
        {
            n = n&(n - 1);  // 每进行一次,将最右侧存有1的bit的值置为0,直到全0,退出循环 
            count++;
        }
        return count;
    }
};

class Solution2 {
public:
    int  NumberOf1(int n) {
        int count = 0;
        unsigned int flag = 1;
        while (n) {
            count++;
            n = n << 1;
        }
        return count;
    }
};

python

# -*- coding:utf-8 -*-
from ctypes import *
class Solution:
    def NumberOf1(self,n):
        cnt = 0
        while c_int(n).value:
            cnt +=1
            n = n & (n-1)
        return cnt
from ctypes import *
def count(num):
    cnt = 0
    flag = 1
    while c_int(flag).value:
        if c_int(num & flag).value:
            cnt += 1
        flag = flag << 1
    return cnt

相关文章

  • 统计整数二进制中1的个数

    iii.run输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 题目 实现一个函数,输入一个整数,...

  • 剑指offer.C++.code11-15

    11. 二进制中1的个数 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 12. 数值的整数次方...

  • 剑指offer刷题记录(C++版本)(之二)

    11.二进制中1的个数 题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 思路:如果一个整数...

  • 二进制中1的个数

    题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 思路:每次循环统计二进制中最后一个1,再把...

  • 一、位运算

    题目 1、求一个整数,二进制时1的个数 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 思路:最...

  • 《剑指offer》之Python二进制中1的个数

    二进制中1的个数题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解题思路:如果一个整数不...

  • 统计非负整数二进制展开中数位1的总数

    统计非负整数二进制展开中数位1的总数。如整数64 的二进制展开为00000000 00000000 0000000...

  • 常见位运算的面试题

    1. 不用临时变量,交换两个整数? 一个数和另一个数异或两次得到的还是原来的数 例如: 2. 统计一个整数二进制中...

  • LeetCode 每日一题 [48] 二进制中1的个数

    LeetCode 二进制中1的个数 [简单] 请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如...

  • 从面试题中学习

    给定一个随机整数,求出其二进制数中“1”的个数

网友评论

      本文标题:统计整数二进制中1的个数

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