您的位置:首页 > 其它

欢迎使用CSDN-markdown编辑器

2016-12-19 01:56 190 查看

二进制中有多少个1(JAVA)

计算在一个 32 位的整数的二进制表式中有多少个 1.

样例

给定 32 (100000),返回 1

给定 5 (101),返回 2

给定 1023 (111111111),返回 9

方法

1.利用除2求余的方法获取二进制位数,判断位数是否为1来统计位数。

2.如果为负数,则与2的32次方相加,变为正数(0与2的32次方的二进制相等),然后跟步骤1相同

代码

public class Solution {
/**
* @param num: an integer
* @return: an integer, the number of ones in num
*/
public int countOnes(int num) {
// write your code here

int count = 0;

if(num < 0)
{
num = num + Integer.MAX_VALUE + 1;
while(num != 0){
if(num % 2 == 1)
count++;
num = num / 2;
}
count++;

}else if(num > 0){

while(num != 0)
{
if(num % 2 == 1)
count++;
num = num / 2;
}

}

return count;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: