当前位置:   article > 正文

牛客网华为笔试 -- 整数与IP地址间的转_华为科目一用例规则

华为科目一用例规则

题目描述

原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成一个长整数。
举例:一个ip地址为10.0.3.193
每段数字 相对应的二进制数
10 00001010
0 00000000
3 00000011
193 11000001
组合起来即为:00001010 00000000 00000011 11000001,转换为10进制数就是:167773121,即该IP地址转换后的数字就是它了。
反过来可以把一个长整数转化为一个IP地址。

输入描述:
输入
1 输入IP地址
2 输入10进制型的IP地址

输出描述:
输出
1 输出转换成10进制的IP地址
2 输出转换后的IP地址

示例1
输入
10.0.3.193
167969729
输出
167773121
10.3.3.193

AC代码

import java.util.Scanner;

public class Main {

   public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while(scanner.hasNext()){
            String s1 = scanner.next();
            Long l = scanner.nextLong(); 注意点1,要用long而不是int来接受
            String[] ss = s1.split("\\."); //注意点2, .表示任意字符,所以先要转义
            Long num = 0L;
            num += new Long(ss[0]) << 24;
            num += new Long(ss[1]) << 16;
            num += new Long(ss[2]) << 8;
            num += new Long(ss[3]);
            System.out.println(num);
            String bindata = Long.toBinaryString(l);
            String[] data = new String[4];
            data[0] = bindata.substring(0,bindata.length()-3*8);
            data[1] = bindata.substring(data[0].length(),data[0].length()+8);
            data[2] = bindata.substring(data[0].length()+data[1].length(),data[0].length()+data[1].length()+8);
            data[3] = bindata.substring(bindata.length()-8,bindata.length());

            System.out.print(Integer.valueOf(data[0],2)+".");
            System.out.print(Integer.valueOf(data[1],2)+".");
            System.out.print(Integer.valueOf(data[2],2)+".");
            System.out.println(Integer.valueOf(data[3],2));
        }
    }

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/625057
推荐阅读
相关标签
  

闽ICP备14008679号