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

整数与IP地址间的转换

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

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // ip转长整数
        String ip = in.nextLine();
        String[] split = ip.split("\\.");
        long result = 0L;
        result += Long.parseLong(split[0]) << 24;
        result += Long.parseLong(split[1]) << 16;
        result += Long.parseLong(split[2]) << 8;
        result += Long.parseLong(split[3]);
        System.out.println(result);
        // 长整数转ip
        String longStr = in.nextLine();
        long inputLong = Long.parseLong(longStr);
        StringBuilder binaryString = new StringBuilder(Long.toBinaryString(inputLong));
        while (binaryString.length() < 32) {
            // 不够32位前面补0直到补够32位(关键就在这里-Long.toBinaryString()方法计算出的二进制以1开头,0开头会省略)
            binaryString.insert(0, "0");
        }
        // 将二进制字符串转化成整数
        int a = Integer.parseInt(binaryString.substring(0, 8), 2);
        int b = Integer.parseInt(binaryString.substring(8, 16), 2);
        int c = Integer.parseInt(binaryString.substring(16, 24), 2);
        int d = Integer.parseInt(binaryString.substring(24), 2);
        System.out.println(a + "." + b + "." + c + "." + d);

    }
}

#刷题#
全部评论

相关推荐

浪子陪都:简历最优秀的地方放到了后面,国奖,校级奖学金这些是最亮眼的。说明你跟同级别的学生不一样。 建议台灯这个,PCB布局布线这个词汇不专业,业内是PCB Layout,第二,单片机的板子一般不用考虑SI,PI 都是低速信号,只要遵循3W原则就好了。 单片机的项目太low了,技能这块,你要看一下BOSS直聘的招聘要求,按照别人的要求写,一些关键词可以增加你简历被检索到的概率。 主修课程不用写,这个没有人去关注的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务