题解 | #密码截取#

整数与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());
    }
}

}

全部评论

相关推荐

双非阴暗爬行:我来看看笑死我了,这名字取得好想笑(没有不好的意思)
点赞 评论 收藏
分享
04-25 18:13
五邑大学 Java
后来123321:大二两段实习太厉害了,我现在大二连面试都没有
点赞 评论 收藏
分享
05-28 23:26
河南大学 Java
双非本,刚学完Redis,项目只有外卖和点评,八股没准备,算法只有lqb省一,感觉敲的项目也是一言难尽没怎么吸收。怎么你们都有实习了
大牛之途:27急个锤子,你投日常实习最好的时间就是9,10月份,那时候暑期实习都结束了,正是缺人的时候。这份日常又能给你的暑期实习增加竞争力,暑期找的好了秋招也不怕了,都是环环相扣的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务