二进制中1的个数

题目描述

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
 1 /*
 2  * 题目描述
 3  * 输入一个整数,输出该数二进制表示中1的个数。
 4  * 其中负数用补码表示。
 5  */
 6 
 7 public class Main11 {
 8     public static void main(String[] args) {
 9         int count = Main11.NumberOf1(453);  /、随便 n
10         System.out.println(count);
11     }
12     
13     public static int NumberOf1(int n) {
14         int count = 0;
15         String str = Integer.toBinaryString(n);  //将十进制 转化成 二进制 详见下面
16         //System.out.println(str);
17         char[] ch = str.toCharArray();
18         for(int i=0;i<str.length();i++) {
19             if (ch[i] == '1') {
20                 count++;
21             }
22         }
23         return count;
24     }
25 }

 public static String toBinaryString(int i)

  在基数2中返回整数参数的字符串表示形式为无符号整数。 

  如果参数为负,则无符号整数值为参数加2 32 ; 否则就等于论证。 该值转换为二进制(基数2)的ASCII数字字符串,没有额外的前导0 s。 

  可以通过调用Integer.parseUnsignedInt(s, 2)从返回的字符串s中恢复参数的值。

  如果无符号幅度为零,则由单个零字符'0' ( 'u0030' )表示; 否则,无符号大小的表示的第一个字符将不是零字符。 字符'0' ( 'u0030' )和'1' ( 'u0031' )用作二进制数字。

  

 

  参数
    i - 要转换为字符串的整数。
  结果
    由二进制(基数2)中的参数表示的无符号整数值的字符串表示形式。
  从以下版本开始:
    JDK1.0.2
public char[] toCharArray()
  将此字符串转换为新的字符数组。
  结果
    一个新分配的字符数组,其长度是该字符串的长度,其内容被初始化为包含由该字符串表示的字符序列。 
原文地址:https://www.cnblogs.com/strive-19970713/p/11061790.html