欢迎使用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; } };
相关文章推荐
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器ss
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器