比如子网192.168.123.30/32,32就是掩位,转换成子网掩码255.255.255.255,
0表示主机位
现分享笔记转换,小记(直接贴图,就是懒)
public class Test {
public static void main(String[] args) {
String netMask = "32";//掩位
int integer = Integer.valueOf(netMask);
List<String> list = new ArrayList<String>();
if (integer > 0) {
for (int i = 1; i <= integer; i++) {
int ip = 0xFFFFFFFF << (32 - i);//对应的二进制序列
String binaryStr = Integer.toBinaryString(ip);
StringBuffer buffer = new StringBuffer();
for (int j = 0; j < 4; j++) {
int beginIndex = j * 8;
buffer.append(Integer.parseInt(binaryStr.substring(beginIndex, beginIndex + 8), 2)).append(".");
}
// System.out.println("net mask " + i + " ,submask:" + buffer.substring(0, buffer.length() - 1));
String substring = buffer.substring(0, buffer.length() - 1);
list.add(substring);
}
System.out.println("获取的值:" + list.get(list.size() - 1));//获取的值:255.255.255.255
}else {
list.add("0.0.0.0");
String s = list.get(list.size() - 1);
System.out.println("0:"+s);
}
}
}