zoukankan      html  css  js  c++  java
  • 面试题:二进制中1的个数

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

    方法1:将二进制数右移(输入为负数时会引起死循环)

    方法2:将1左移

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

    方法3:(n-1)&n

    public class Solution {
        public int NumberOf1(int n) {
            int count = 0;
            while(n != 0){
                n = (n - 1) & n;
                count++;
            }
            return count;
        }
    }
  • 相关阅读:
    SCUT
    SCUT
    SCUT
    ???
    Codeforces
    SCUT
    SCUT
    SCUT
    SCUT
    2019牛客暑期多校训练营(第八场)
  • 原文地址:https://www.cnblogs.com/Aaron12/p/9509745.html
Copyright © 2011-2022 走看看