题解 | #整数与IP地址间的转换#
整数与IP地址间的转换
https://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNext()) { // 注意 while 处理多个 case String[] a = in.nextLine().split("\\."); long b = in.nextLong(); String s = ""; for(String i : a){ for(int j=7;j>=0;j--){ s += Integer.parseInt(i) >>> j & 1; } } System.out.println(Long.parseLong(s,2)); String[] ipb = new String[4]; String ip=""; for(int i=31;i>=0;i--){ if((i+1)%8==0 && i!=31) { ipb[(i+1)/8] = ip; ip=""; } ip += b >>> i & 1; if(i==0) { ipb[i] = ip; } } for(int i=3;i>=0;i--){ System.out.print(Integer.parseInt(ipb[i],2)); if(i==0) break; System.out.print("."); } // System.out.print(Integer.parseInt("00001010",2)); } } // public static }