PrefixLength的计算
直接用android4.2.2的源码来说话:
\frameworks\base\services\java\com\android\server\NetworkManagementService.java
int prefixLength = NetworkUtils.netmaskIntToPrefixLength( (int)Long.parseLong(mask, 16));
-->\frameworks\base\core\java\android\net\NetworkUtils.java
public static int netmaskIntToPrefixLength(int netmask) {
return Integer.bitCount(netmask); //返回指定 int 值的二进制补码表示形式的 1 位的数量。
}
所以PrefixLength就是取掩码int形式的补码的位数。