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

整数与IP地址间的转换

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


public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            String str = sc.next();
            long numIP = sc.nextLong();
            System.out.println(ipToNum(str));
            System.out.println(numToIp(numIP));
        }
    }

    public static long ipToNum(String str) {
        String[] s = str.split("\\.");
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < s.length; i++) {
            StringBuilder sb1 = new StringBuilder(Long.toBinaryString((Long.parseLong(s[i]))));
            sb1.reverse();
            int len = sb1.length();
            while (len < 8) {
                sb1.append("0");
                len++;
            }
            sb.append(sb1.reverse().toString());
        }
        String string = sb.toString();
        long num = Long.parseLong(string,2);
        return num;
    }

    public static String numToIp(long num) {
        String s = Long.toBinaryString(num);
        StringBuilder sb = new StringBuilder(s);
        sb = sb.reverse();
        if(sb.length() % 8 == 0){

        }else {
            int len = 8 - sb.length() % 8;
            while (len > 0) {
                sb.append("0");
                len--;
            }
        }
        sb = sb.reverse();
        s = sb.toString();
        StringBuilder sb1 = new StringBuilder();
        while (s.length() > 0) {
            if (s.length() == 8) {
                sb1.append(Long.parseLong(s.substring(0, 8), 2));
            } else {
                sb1.append(Long.parseLong(s.substring(0, 8), 2)).append(".");
            }
            s = s.substring(8);
        }
        return sb1.toString();
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-02 17:28
25届每天都在焦虑找工作的事情0offer情绪一直很低落硬撑着面了一个岗位岗位有应酬的成分面试的时候hr给我出各种场景题问的问题比较犀利&nbsp;有点压力面的感觉感觉有点回答不上来本来就压抑的情绪瞬间爆发了呢一瞬间特别想哭觉得自己特别没用没绷住掉眼泪了事后想想觉得自己挺有病的&nbsp;真的破大防了
喜欢唱跳rap小刺猬...:我觉得没关系吧,之前有一次面试leader给我压力面,我顶住了压力,结果入职的时候发现组里氛围很差,果断跑路。其实从面试就能大概看出组的情况,面试体验好的组倒是不一定好,但是面试体验不好的组。。。就很难说
面试尴尬现场
点赞 评论 收藏
分享
昨天 10:44
青岛工学院 Java
机械打工仔:对方没做错任何事,你自己在这自找没趣呢,就算他工资不高,人家定多少薪资是人家的事,况且人家写了1~3年清清楚楚
点赞 评论 收藏
分享
06-15 18:44
黄淮学院 Java
Lynn012:如果是居民楼还是算了吧,看着有点野呢
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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