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

全部评论

相关推荐

10-09 09:39
门头沟学院 C++
HHHHaos:这也太虚了,工资就一半是真的
点赞 评论 收藏
分享
牛客868257804号:九个中铁八个中建
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务