题解 | #密码截取#

整数与IP地址间的转换

http://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea

import java.util.; import java.io.;

public class Main{

public static void main(String[] args){


    InputStreamReader reader=  new InputStreamReader(System.in);
    try(BufferedReader br = new BufferedReader(reader) ){

        String[] ip_parts = br.readLine().trim().split("\\.");
        final String number_str = br.readLine();
        String number = Long.toBinaryString(Long.parseLong(number_str));

        StringBuffer sb =  new StringBuffer();
        StringBuffer sb2 =  new StringBuffer();

        for(int i=0 ; i<ip_parts.length ; i++){
            String binaryString = Integer.toBinaryString(Integer.parseInt(ip_parts[i]));
            while (binaryString.length() % 8 !=0){
                binaryString  = "0" +binaryString;
            }
            sb.append(binaryString);
        }

        while(number.length() % 8 !=0){
            number = "0" +number;
        }

        for (int i =0 ;i<number.length() / 8  ;i++){

           String substring = number.substring(i*8, (i+1)*8);
           sb2.append(Integer.valueOf(substring,2));
           if (i == number.length()/8 -1) continue;
           sb2.append(".");

        }


                    System.out.println(Long.parseLong(sb.toString(),2));
        System.out.println(sb2);

    }catch(IOException e){
        System.out.println(e.getMessage());
    }
}

}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务