IP地址的两种表达方式以及互相之间的转换

IP地址是32位的。
例如:01110000000011110101101011000011

好记吗?好写吗?因此把它均分红四段,每段8个,以点号分隔
例如:01110000. 00001111 .01011010 .11000011

这样仍是很差记很差写,因此每段里面的二进制数转换成对应的十进制。
例如:112.15.90.195

这称为“点分十进制”表示方法。java

 

点分十进制转二进制:code

public String convert(String ip){
		Long rs = 0L;
		String str[] = ip.split("\\."); //.是转义字符  须要用\\.代替
		if(str.length!=4) return "输入格式错误";
		for(int k = 0 ; k < str.length ; k++){
			int bit = 24-k*8;
			try{
				if(Integer.parseInt(str[k])<0 ||Integer.parseInt(str[k])>255) return "输入格式错误";
			}catch (NumberFormatException e){
				return "输入格式错误";
			}
			rs = rs + Long.parseLong(str[k])<<bit;
		}
		return Long.toBinaryString(rs);
	}