zoukankan      html  css  js  c++  java
  • 【剑指 Offer】15. 二进制中 1 的个数

    题目描述

    请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。
    例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。

    Java

    public class Soulution15 {
        public static void main(String[] args) {
            Soulution15 soulution15 = new Soulution15();
            Solution solution = soulution15.new Solution();
            System.out.println(solution.hammingWeight(9));
        }
    
        class Solution {
    
            /**
             * 方法一:逐位判断
             * 1. 根据与运算,设二进制数字为 n,则:
             *   1.1 若 n&1 = 0,则 n 二进制最右一位为 0;
             *   1.2 若 n&1 = 1,则 n 二进制最右一位为 1;
             * 2. 进行循环判断:
             *   2.1 判断 n 最右一位是否为 1,根据结果计数
             *   2.2 将 n 无符号右移一位
             */
            public int hammingWeight(int n) {
                int res = 0;
                while (n != 0) {
                    res += n & 1;
                    n >>>= 1;
                }
                return res;
            }
        }
    }
    

    C++

    
    

    Python

    
    

    总结

  • 相关阅读:
    hdu 1532(最大流)
    星沉月朗
    uva 818 (位运算 + 判环)
    SQL变量、Substring、charindex、case函数、去除重复
    C# Tostring格式
    asp.net导出word(word2007)
    asp.net生成缩略图
    正则表达式语法
    解压缩
    文件复制
  • 原文地址:https://www.cnblogs.com/parzulpan/p/14518279.html
Copyright © 2011-2022 走看看