整数与IP地址间的转换

整数与IP地址间的转换

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

import java.util.*;

public class Main {

    private final int N = 4;
    public Main() {
    }

    public String convert(String str) {
        // ipv4 -> int
        if (str.contains(".")) {
            String[] fields = str.split("\\.");
            long result = 0;
            for (int i = 0; i < N; i++) {
                result = result * 256 + Integer.parseInt(fields[i]);
            }
            return "" + result;
        }
        // int -> ipv4
        else {
            long ipv4 = Long.parseLong(str);
            String result = "";
            for (int i = 0; i < N; i++) {
                result = ipv4 % 256 + "." + result;
                ipv4 /= 256;
            }
            return result.substring(0, result.length() - 1);
        }
    }

    public static void main(String[] args) {
        Main solution = new Main();
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) {
            String str = in.next();
            String res = solution.convert(str);
            System.out.println(res);
        }
    } 
}
全部评论
牛批,这个移位是关键,简直了!
4 回复 分享
发布于 2022-11-10 20:08 湖南
我的膝盖呢???
3 回复 分享
发布于 2022-09-02 17:16 北京
**,总是有大佬不按照出题人步骤来
1 回复 分享
发布于 2022-11-23 21:41 江苏
*256 相当于将这串数字当作256进制的数,nb!
1 回复 分享
发布于 2023-05-03 11:19 江苏
*256是啥意思?/256有又啥意思
点赞 回复 分享
发布于 2022-09-07 22:55 广东
点赞 回复 分享
发布于 2022-09-30 01:51 云南
牛啤
点赞 回复 分享
发布于 2022-11-06 12:18 陕西
牛逼牛逼
点赞 回复 分享
发布于 2022-12-02 10:19 美国
太牛逼了,最后细节减少一个.,理解到位
点赞 回复 分享
发布于 2022-12-02 10:24 美国
666
点赞 回复 分享
发布于 2023-03-29 20:18 北京
为什么老有这种人,怪才
点赞 回复 分享
发布于 2023-04-02 18:10 湖北
谁来解释一下 为啥*256 就可以得到整数
点赞 回复 分享
发布于 2023-04-09 11:00 江苏
哈哈,我第一次做就想到了256,想在题解里找这个,果然找到啦哈哈
点赞 回复 分享
发布于 2023-07-14 16:27 广东
这两个256是灵魂
点赞 回复 分享
发布于 2023-07-18 22:15 四川
天才
点赞 回复 分享
发布于 03-26 19:22 内蒙古
nb
点赞 回复 分享
发布于 04-19 14:06 江西
int转ip的时候最后的结果是反的吧 需要reverse
点赞 回复 分享
发布于 05-12 12:59 江苏

相关推荐

160 20 评论
分享
牛客网
牛客企业服务