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

整数与IP地址间的转换

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

import java.util.ArrayList;
import java.util.Scanner;

/**
 * @author ChrisPeng
 * @date 2023/2/2 17:41
 */
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            String ipA = scanner.nextLine();
            long ipB = scanner.nextLong();
            String[] split = ipA.split("\\.");
            long digitIP = 0;
            for (int i = 0; i < split.length; i++) {
                digitIP += Math.pow(2, 8 * (3 - i)) * Integer.parseInt(split[i]);
            }
            //将十进制转换为ip地址:点分十进制
            StringBuilder sb = new StringBuilder();
            ArrayList<Integer> list = new ArrayList<>();
            while (ipB > 0) {
                int temp = (int) (ipB % 256);
                ipB /= 256;
                list.add(temp);
            }
            sb.append(list.get(3)).append(".")
                    .append(list.get(2)).append(".")
                    .append(list.get(1)).append(".")
                    .append(list.get(0));
            System.out.println(digitIP);
            System.out.println(sb.toString());
        }
    }
}

全部评论

相关推荐

08-29 07:47
已编辑
莆田学院 Java
路上小荷:小孙,你好,我是由XX幼儿园、XX小学、XX初中、XX高中、XX大***合培养的研究生,想寻找能够陪我一起成长,登上人生巅峰的公司。在公司任职期间公司需要提供免费食宿、百万年薪以及私人医生。预计65岁退休,退休后公司可以求我给新员工讲述奋斗历程
点赞 评论 收藏
分享
晓斑:根据他们的经验谈,最低工资和最高两倍差的话基本不是正经招人的
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务