1、判断二进制里1的个数。

public static void main(String[] args) {
    int num =0;
    Scanner sc = new Scanner(System.in);
    while (sc.hasNext()){
        int n = sc.nextInt();
        num = fun(n);
        System.out.println(n+"的二进制里1的个数为"+num+"个");
    }
}

private static int fun(int n){
    int num =0;
    String str = Integer.toBinaryString(n);
    System.out.println(str);
    int len = str.length();
    for(int i=0; i<len; i++){
        if(str.charAt(i) == '1'){
            num++;
        }
    }
    return num;
}

2、如何把一个ip转化为int数字,实现互相转化.

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    while (sc.hasNext()){
        String str = sc.nextLine();
        long  res = fun(str);
        System.out.println(res);
        System.out.println(fun2(res));
    }
}

private static String fun2(long res) {
    StringBuilder str = new StringBuilder();
    str.append(String.valueOf(res >> 24) + ".");
    str.append(String.valueOf((res & 0x00FFFFFF) >> 16)+".");
    str.append(String.valueOf((res & 0x0000FFFF) >> 8)+".");
    str.append(String.valueOf((res & 0x000000FF)));
    return str.toString();
}

private static long fun(String str){
    String[] ip = str.split("\\.");
    for(String str1: ip){
        System.out.println(str1);
    }
    return (Integer.parseInt(ip[0]) << 24) + (Integer.parseInt(ip[1]) << 16) + (Integer.parseInt(ip[2]) << 8) + Integer.parseInt(ip[3]);
}