您现在的位置是:首页 > 后台技术 > 数据结构与算法数据结构与算法

位1的个数(图文)

第十三双眼睛2023-12-02【数据结构与算法】人已围观

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

思路:最容易想到的,就是将整数转换位二进制字符串,然后遍历该字符串,累加位为1的数量。代码如下:
public static int method1(int n) {
    String s = Integer.toBinaryString(n);
    int res = 0;
    for(int i = 0; i<s.length(); i ++) {
        if (s.charAt(i) == '1') {
            res ++;
        }
    }
    return res;
}

上面用的是java中自带的方法,如果不用,则可以用按位与的方法,利用与的特性,全为1才为1,将目标数对应二进制字符串中位为1的数量返回。代码如下:
int method2(uint32_t n) {
    int ret = 0;
    for (int i = 0; i < 32; i++) {
        if (n & (1 << i)) {
            ret++;
        }
    }
    return ret;
}

 

Tags:

很赞哦! ()

文章评论

    共有条评论来说两句吧...

    用户名:

    验证码:

本站推荐

站点信息

  • 网站名称:JavaStudy
  • 建站时间:2019-1-14
  • 网站程序:帝国CMS7.5
  • 文章统计242篇文章
  • 标签管理标签云
  • 统计数据百度统计
  • 微信公众号:扫描二维码,关注我们