12.输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数

利用Integer.toBinaryString方法,快速获取一个十进制数的二进制字符串形式

import java.util.*;

public class Main{
    public static void main(String []Args){
        Scanner scanner =  new Scanner(System.in);
        
        int input = scanner.nextInt();
        
        // 手写的十进制转二进制
        // ArrayList ints = new ArrayList();
        
        // while(input != 0){
        //     // int shang = input / 2;
        //     ints.add(input % 2);
        //     input /= 2;
        // }
        
        String str = Integer.toBinaryString(input);
        
        char [] ints =str.toCharArray();
        
        int count=0;
        for(int i=0;i<ints.length;i++){
            if(ints[i]=='1'){
                count++;
            }
        }
        
        System.out.println(count);
    }
}

同时也复习一下,十进制和十六进制互转吧:

十进制转十六进制

(1)转义字符 ‘%x’;
(2)Integer,toHexString;

十六进制转十进制

  Integer.parseInt(int,16)

12.输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数_第1张图片

你可能感兴趣的:(#,Java--华为在线面试题)