前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >191. 位1的个数

191. 位1的个数

原创
作者头像
Michel_Rolle
修改2021-03-08 09:58:01
1.1K0
修改2021-03-08 09:58:01
举报
文章被收录于专栏:LeetCode解题LeetCode解题

链接

编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。

示例 1:

代码语言:txt
复制
输入:00000000000000000000000000001011
输出:3
解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。

示例 2:

代码语言:txt
复制
输入:00000000000000000000000010000000
输出:1
解释:输入的二进制串 00000000000000000000000010000000 中,共有一位为 '1'。

示例 3:

代码语言:txt
复制
输入:11111111111111111111111111111101
输出:31
解释:输入的二进制串 11111111111111111111111111111101 中,共有 31 位为 '1'。

go语言版

  1. 给定一个数n,每进行一次n&(n-1)计算,其结果中都会少了一位1,而且是最后一位。
  2. 可以通过不断地用n&(n-1)操作去掉n中最后一位1的方法求出n中1的个数
代码语言:txt
复制
func hammingWeight(num uint32) int {
    res := 0
    for num > 0 {
        num &= num - 1
        res++
    }
    return res
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档