zoukankan      html  css  js  c++  java
  • 剑指Offer-11.二进制中1的个数(C++/Java)

    题目:

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

    分析:

    将数字和1先做与运算,然后将1右移一位,现在是判断数字的第二位是不是1,这样循环的做下去即可。也可以转换成字符串再统计1的个数。

    程序:

    C++

    class Solution {
    public:
         int  NumberOf1(int n) {
             int flag = 1;
             int res = 0;
             while(flag){
                 if(n & flag)
                     res++;
                 flag = flag << 1;
             }
             return res;
         }
    };

    Java

    public class Solution {
        public int NumberOf1(int n) {
            int flag = 1;
            int res = 0;
            while(flag != 0){
                if((n & flag) != 0)
                    res++;
                flag = flag << 1;
            }
            return res;
        }
    }
  • 相关阅读:
    HDU4565
    CF861D
    UVA 11651
    HDU5950
    POJ3267
    POJ1094
    POJ1905
    HDU3567
    进程的同步与互斥
    预防死锁,检测死锁,避免死锁,解除死锁....
  • 原文地址:https://www.cnblogs.com/silentteller/p/11856241.html
Copyright © 2011-2022 走看看