/*
整数与ip地址间的转换
10.0.3.193
每一段拆分转化为二进制数 00001010 00000000 00000011 11000001
然后转换为十进制 167773121
要求:1、输入ip地址
2、输入10进制的ip地址
输出10进制的ip地址
输出转换后的ip地址
*/
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc =new Scanner(System.in);
while(sc.hasNext()){
String ip=sc.nextLine();
String p=sc.nextLine();
System.out.println(IptoTen(ip));
TentoIp(p);
}
}
private static void TentoIp(String p) {
long temp=Long.parseLong(p);
String ip=Long.toBinaryString(temp);
StringBuilder sb=new StringBuilder();
if(ip.length()<32){
for(int i=0;i<(32-ip.length());i++){
sb.append(0);
}
sb.append(ip);
}else if(ip.length()==32){
sb.append(ip);
}
for(int i=0;i<sb.length()-8;i=i+8){
System.out.print(Integer.parseInt(sb.substring(i,i+8),2)+".");
}
System.out.println(Integer.parseInt(sb.substring(sb.length()-8,sb.length()),2));
}
private static long IptoTen(String ip) {
String[] arr=ip.split("\\.");
long n=Long.parseLong(arr[0]);
for(int i=1;i<arr.length;i++){
n=n<<8;
n=n+Long.parseLong(arr[i]);
}
return n;
}
}
整数与ip地址间的转换
猜你喜欢
转载自blog.csdn.net/Zhengxinyu666/article/details/98853120
今日推荐
周排行