题解 | #整数与IP地址间的转换#
整数与IP地址间的转换
https://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea
import java.util.*; import java.io.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); try { String s1 = br.readLine(); String s2 = br.readLine(); String[] split1 = s1.split("\\."); StringBuffer stb = new StringBuffer(); for (String s : split1) { String s3 = Integer.toBinaryString(Integer.valueOf(s)); int res = 8 - s3.length(); long l = Long.valueOf(s3); for (int i = 0; i < res; i++) { stb.append(0); } stb.append(Long.valueOf(s3)); } long decimalResult = Long.parseLong(stb.toString(), 2); System.out.println(decimalResult); stb = new StringBuffer(); String binStr = Long.toBinaryString(Long.valueOf(s2)); int y = binStr.length() % 8; if (y != 0) { int x = binStr.length() / 8; for (int i = 0; i < (8 * (x + 1) - binStr.length()); i++) { stb.append(0); } } String resultStr = stb.append(binStr).toString(); StringBuffer resultStb = new StringBuffer(); for (int i = 0; i < resultStr.length(); i = i + 8) { if (i != resultStr.length() - 8) { resultStb.append(Long.parseLong(resultStr.substring(i, i + 8), 2) + "."); } else { resultStb.append(Long.parseLong(resultStr.substring(i, i + 8), 2)); } } System.out.println(resultStb.toString()); } catch (IOException e) { e.printStackTrace(); } } }