首页 > 其他 > 详细

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

时间:2020-06-04 13:00:21      阅读:44      评论:0      收藏:0      [点我收藏+]

1、题目

  给定一个整数,统计其二进制表示里有多少个1。

2、分析

  • 方法1:循环迭代该数的二进制的每一位,复杂度是 o(log2 n),n就是该整数
    • def count1(num):
          lens = 0
          while num != 0:
              lens += num & 1
              num >>= 1
          return lens
  • 方法2:复杂度仅仅是1的个数。方法是采用位运算抹去0不需要处理。
    • def count(self,num):
          lens = 0
          while num != 0:
              num = num & (num - 1)  # 本质含义是抹去了0不考虑
              lens += 1
          return lens

题外话

  python 可以直接通过bin()方法获得一个树的二进制表示,返回值是一个字符串,因此

    bin(x).count(‘0‘)也可以做到上述结果

 

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

原文:https://www.cnblogs.com/r1-12king/p/13042547.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!