由于碰到好几次需要使用转换,故总结了一下。一开始考虑的是通过自行写方法转,发现出现位数不对情况。
现使用了Integer中的toBinaryString方法来实现。
String[] ipmasksStrings = ipmask.split("\\.");
int number = 0;
String temp = "";
if(ipmasksStrings != null && ipmasksStrings.length == 3){
for (String string : ipmasksStrings) {
temp += Integer.toBinaryString(Integer.parseInt(string));
}
char[] chars = temp.toCharArray();
char c = '1';
for(int i = 0; i < chars.length; i++)
{
if(c == chars[i])
{
number++;
}
}
}
计算掩码中1的个数
String[] ipmasksStrings = ipAclAdvancedIpMask.split("\\.");
int num = 0;
for (String string : ipmasksStrings) {
String binary = Integer.toBinaryString(Integer.parseInt(string));
char[] cha = binary.toCharArray();
for (char c : cha) {
if (c == '0') {
break;
}
num++;
}
}