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); }