OJ------整数与IP地址间的转换
2016-08-24 14:47
239 查看
描述 | 原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成 一个长整数。 举例:一个ip地址为10.0.3.193 每段数字 相对应的二进制数 10 00001010 0 00000000 3 00000011 193 11000001 组合起来即为:00001010 00000000 00000011 11000001,转换为10进制数就是:167773121,即该IP地址转换后的数字就是它了。 的每段可以看成是一个0-255的整数,需要对IP地址进行校验 |
---|---|
知识点 | 字符串,位运算 |
运行时间限制 | 10M |
内存限制 | 128 |
输入 | 输入 1 输入IP地址 2 输入10进制型的IP地址 |
输出 | 输出 1 输出转换成10进制的IP地址 2 输出转换后的IP地址 |
样例输入 | 10.0.3.193 167969729 |
样例输出 | 167773121 10.3.3.193 |
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
String s1=sc.next();
String s2=sc.next();
System.out.println(toTen(s1));
System.out.println(toAdr(s2));
}sc.close();
}
private static String toTen(String s){
StringBuffer sb=new StringBuffer();
String[] ss=s.split("\\.");
for(int i=0;i<ss.length;i++){
String sss=Integer.toBinaryString(Integer.parseInt(ss[i]));
if(sss.length()<8){
for(int j=0;j<8-sss.length();j++){sb.append("0");}
}
sb.append(sss);
}
BigInteger big=new BigInteger(sb.toString(),2);
return big.toString(10);
}
private static String toAdr(String s){
String ss=Long.toBinaryString(Long.valueOf(s));
//String ss=Long.valueOf(s).toBinaryString();
StringBuffer sb=new StringBuffer();
if(ss.length()<32){
for(int i=0;i<32-ss.length();i++){
sb.append("0");
}}
sb.append(ss);
StringBuffer sb2=new StringBuffer();
ss=sb.toString();
while(ss.length()!=8){
BigInteger big=new BigInteger(ss.substring(0,8),2);
//int a=Integer.parseInt(ss.substring(0,8));
sb2.append(big.toString(10)+".");
ss=ss.substring(8);
}
BigInteger big=new BigInteger(ss,2);
sb2.append(big.toString(10));
return sb2.toString();}
}
相关文章推荐
- 华为OJ 整数与IP地址间的转换
- 华为OJ——整数与IP地址间的转换
- 华为OJ:ip地址与整数之间的转换
- 【华为 OJ 】整数与IP地址间的转换
- 华为OJ(整数与IP地址间的转换)
- 【华为OJ】【030-整数与IP地址间的转换】
- 华为OJ——整数与IP地址间的转换
- [华为OJ--C++]030-整数与IP地址间的转换
- 华为oj中级 整数与IP地址之间的转换
- 华为OJ——整数与IP地址间的转换
- IP地址与整数之间的转换
- 华为机试在线训练-牛客网(21)整数与IP地址间的转换
- 两行Python代码实现IP地址与十进制整数互相转换
- OJ系列之---IP与整数之间的转换
- [编程题]整数与IP地址间的转换
- 整数与IP地址间的转换
- JS中IP地址与整数的相互转换
- C# IP地址与整数之间转换的具体方法
- js将ip地址转换成整数
- ip地址和整数转换