欢迎使用CSDN-markdown编辑器

来源:互联网 发布:python xpath教程 编辑:程序博客网 时间:2024/04/28 04:14

二进制中有多少个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;    }};
0 0
原创粉丝点击