1,问题描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
2,解题思路
(1)利用Integer.toBinaryString()方法先将整数(包含有符号整数)转换为二进制字符串str形式
(2)利用str.toCharArray()将(1)中的字符串转化为字符数组
(3)遍历字符数组,先将字符转化整型数字,然后再加和。
此题较简单:就是将二进制中的所有数进行加和,返回加和之后的数就是1的个数。
3,源码
public class Solution {
public int NumberOf1(int n) {
if(n==0){
return 0;
}else{
char[] ch = Integer.toBinaryString(n).toCharArray();
int count = 0;
for(char x : ch){
int x_new = x - '0'; //字符转整型数字
count += x_new;
}
return count;
}
}
}
本文介绍了一种计算任意整数(包括负数)二进制表示中1的个数的方法。通过使用Java的Integer.toBinaryString()转换整数为二进制字符串,再将字符串转化为字符数组,最后遍历字符数组并累加,得到1的总数。
683

被折叠的 条评论
为什么被折叠?



