描述 |
|
---|---|
知识点 | 字符串,位运算 |
运行时间限制 | 10M |
内存限制 | 128 |
输入 | 输入 |
输出 | 输出 |
样例输入 | 10.0.3.193 167969729 |
样例输出 | 167773121 10.3.3.193 |
import java.math.BigInteger;
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();}
}