题目描述
输入一个整数,输出该数二进制表示中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()
将此字符串转换为新的字符数组。
结果
一个新分配的字符数组,其长度是该字符串的长度,其内容被初始化为包含由该字符串表示的字符序列。