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

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

    实现语言:Java

    先把整数转换为二进制字符串,把字符串转为char数组,遍历。

    public class Solution {
        public int NumberOf1(int n) {
            char[] str=Integer.toBinaryString(n).toCharArray();
            int res=0;
            for(int i=0;i<str.length;++i){
                if(str[i]=='1'){
                    ++res;
                }
            }
            return res;
        }
    }
    

     实现语言:Java

    利用&运算的特性,把一个整数减去1,再和原整数做与运算,会把该整数最右边一个1变成0.那么一个整数的二进制有多少个1,就可以进行多少次这样的操作。

    public class Solution {
        public int NumberOf1(int n) {
            int res=0;
            while(n!=0){
                n=(n-1)&n;
                ++res;
            }
            return res;
        }
    }
    
  • 相关阅读:
    POJ 3009
    POJ 3253
    POJ 3617
    POJ 3984
    UVA10012
    HDU5100
    HDU 5101
    UVA301 运输
    UVA 331 交换的方案数
    uva 10344 算23点
  • 原文地址:https://www.cnblogs.com/xidian2014/p/10195671.html
Copyright © 2011-2022 走看看