package com.patience.interview.huawei;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* IP地址和二进制互转
* @author Green.Gee
* @date 2022/9/8 14:16
* @email green.gee.lu@gmail.com
*/
public class IPTransformToNum {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String IP = br.readLine();
System.out.println(ipToNum(IP));
String ipOfNum = br.readLine();
System.out.println(numToIP(ipOfNum));
}
private static String numToIP(String ipOfNum) {
String bin = Long.toBinaryString(Long.valueOf(ipOfNum,10));
int gap = 32 - bin.length();
StringBuffer fix = new StringBuffer();
while(gap > 0){
fix.append("0");
gap--;
}
bin = fix + bin;
StringBuffer result = new StringBuffer();
int startIndex = 0,endIndex = 8;
String A = bin.substring(startIndex,endIndex);
result.append(Long.valueOf(A,2)).append(".");
String B = bin.substring(startIndex+=8,endIndex+=8);
result.append(Long.valueOf(B,2)).append(".");
String C = bin.substring(startIndex+=8,endIndex+=8);
result.append(Long.valueOf(C,2)).append(".");
String D = bin.substring(startIndex+=8);
result.append(Long.valueOf(D,2));
return result.toString();
}
private static String ipToNum(String ip) {
String [] s = ip.split("\\.");
StringBuffer binaryStr = new StringBuffer();
for(String i : s){
String bin = Long.toBinaryString(Long.valueOf(i,10));
StringBuffer fix = new StringBuffer();
int len = 8 - bin.length();
while(len > 0){
fix.append("0");
len--;
}
bin = fix + bin;
binaryStr.append(bin);
}
Long num = Long.valueOf(binaryStr.toString(),2);
return num+"";
}
}
04-26
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交