题解 | #华为no.15 求int型正整数在内存中存储时1的个数#

求int型正整数在内存中存储时1的个数

http://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9

//十进制转其他进制

Integer.toHexString(10);  //将10转换为十六进制,返回字符串类型

Integer.toOctalString(10);  //将10转为八进制,返回字符串类型

Integer.toBinaryString(10);  //将10转为二进制,返回字符串类型 //其他进制转十进制

//十六进制转十进制,例如:0xFFFF

Integer.valueOf("FFFF",16).toString();  //valueOf()方法返回Integer类型,调用toString()返回字符串

Integer.parseInt("FFFF",16);  //返回int基本数据类型

Integer.toString(0xFFFF);  //该方法可直接传入表示十六进制数字的基本数据类型,方法返回字符串

//八进制转十进制,例如:017

Integer.valueOf("17",8).toString();  //valueOf()方法返回Integer类型,调用toString()返回字符串

Integer.parseInt("17",8);  //返回int基本数据类型

Integer.toString(017);  //该方法可直接传入表示八进制数字的基本数据类型,方法返回字符串

//二进制转十进制,例如:0101

Integer.valueOf("0101",2).toString();  //valueOf()方法返回Integer类型,调用toString()返回字符串

Integer.parseInt("0101",2);  //返回int基本数据类型

//对于二进制、八进制和十六进制之间的转换,可先转换为十进制,在用十进制转多进制的相应方法进行转换

//例如将十六进制0xFF转为二进制

Integer.toBinaryString(Integer.valueOf("FF",16));

//或者

Integer.toBinaryString(Integer.parseInt("FF",16));

//对于输入的表示十六进制的字符串,需要先截取数字子串,再用valueOf()或parseInt()方法进行转换为十进制

//例如输入0xFF

String s = "0xFF";

Integer.valueOf(s.subString(2,s.length()),16);

//对于valueOf方法,可以用于基本数据类型的装箱及多进制到十进制之间的转换。


public class Main {
    public static void main(String[] args) {
        //位运算
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        String s = Integer.toBinaryString(num);
        char[] c = s.toCharArray();
        int count = 0;
        for (int i = 0; i < c.length; i++) {
            if (c[i]=='1') {
                count++;
            }
        }
        System.out.println(count);

    }
}

全部评论

相关推荐

菠落蜜:这个是系统自动投的,不是hr主动打招呼。更抽象的还有ai回复
我的秋招日记
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务