题解 | #整数与IP地址间的转换#

整数与IP地址间的转换

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

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while(in.hasNextLine()){
            String s1 = in.nextLine();
            String s2 = in.nextLine();
            String[] ss = s1.split("\\.");
            
            StringBuilder sb = new StringBuilder("");
            for(int i=0 ; i<ss.length ; ++i){
                sb.append(toBinary(Long.valueOf(ss[i]),8));
            }
            System.out.println(Long.parseLong(sb.toString(), 2));

            //先转化为32位二进制
            String ipAddress = toBinary(Long.valueOf(s2), 32);
            sb = new StringBuilder("");
            StringBuilder sb2 = new StringBuilder("");
            for(int i=0 ; i<32 ; ++i){
                char c = ipAddress.charAt(i);
                if(i!=0 && i%8==0){
                    long x = Long.parseLong(sb.toString(),2);
                    sb2.append(String.valueOf(x)+".");
                    //System.out.println(sb.toString());
                    sb = new StringBuilder(c+"");
                }
                else{
                    sb.append(c);
                }
            }
            //System.out.println(sb.toString());
            sb2.append(Long.parseLong(sb.toString(), 2));
            System.out.println(sb2.toString());

        }
    }

    public static String toBinary(long num, int len){
        StringBuilder sb = new StringBuilder("");
        while(num!=0){
            if(num%2 == 1){
                sb.append("1");
            }
            else{
                sb.append("0");
            }
            num = num>>1;
        }
        while(sb.length()<len){
            sb.append("0");
        }
        return sb.reverse().toString();
    }
}

全部评论

相关推荐

程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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