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形式的补码的位数。

posted on 2013-12-19 10:25  月下银狼  阅读(1333)  评论(0编辑  收藏  举报

导航