import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
//整数与Ip地址之间的转换
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String strIP =sc.nextLine();
String strTenIP = sc.nextLine();
System.out.println(TranslationTenIP(strIP));
System.out.println(TranslationBinaryIP(strTenIP));
}
private static String TranslationBinaryIP(String strTenIP) {
//注意Int的范围int的取值范围: -2^31~2^31,不够2的32次方,所以要改成long.
String s = Long.toBinaryString(Long.parseLong(strTenIP));//十进制,转换成二进制
StringBuilder TenIP = new StringBuilder();
//不够32位要在前面补上0
for (int i = 0; i < 32-s.length(); i++) {
TenIP.insert(0,"0");
}
TenIP.append(s);//拼接
int[] IntIP = new int[4];
StringBuilder IP = new StringBuilder();
for (int i = 0; i < 4; i++) {
IntIP[i]=Integer.parseInt(TenIP.substring(i*8,i*8+8),2);//二进制数每八位分割开,然后转换成10进制。
IP.append(IntIP[i]);
if(i<3) {
IP.append(".");
}
}
return IP.toString();
}
public static Long TranslationTenIP(String strIP){
StringBuilder TenIP = new StringBuilder();
String[] chIP = strIP.split("\\.");//不能直接以.去分割,不能识别。
for (int i = 0; i < chIP.length; i++) {
String s = Integer.toBinaryString(Integer.parseInt(chIP[i]));//十进制转换成二进制,不够8位,要补齐0.
for (int j = 0; j < 8-s.length(); j++) {
TenIP.append("0");
}
TenIP.append(s);//拼接在一起
}
//注意Int的范围int的取值范围: -2^31~2^31,不够2的32次方,所以要改成long.
Long n = Long.parseLong(TenIP.toString(),2);//把二进制转换成十进制
return n;
}
}