题解 | #整数与IP地址间的转换#
整数与IP地址间的转换
https://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String [] arr = in.nextLine().split("\\.");
Long n = in.nextLong();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < arr.length; i++) {
String s1 = Long.toBinaryString(new Long(arr[i]));
String b = "0000000".substring(s1.length() - 1) + s1;
sb.append(b);
}
System.out.println(Long.parseLong(sb.toString(), 2));
String str = Long.toBinaryString(n);
StringBuilder bStr = new StringBuilder(str);
for (int i = 0; i < 32 - str.length(); i++) bStr.insert(0, '0');
for (int i = 0; i < bStr.length(); i = i + 8) {
String sub = bStr.substring(i, i + 8);
if ( i == 24)
System.out.print(Long.parseLong(sub, 2));
else
System.out.print(Long.parseLong(sub, 2) + ".");
}
}
}
