日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

子网掩码与prefixLength长度的互相转换

發(fā)布時間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 子网掩码与prefixLength长度的互相转换 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、prefixLength轉(zhuǎn)換成子網(wǎng)掩碼,類似255.255.255.0

public static long calcMaskByPrefixLength(int length) {int mask = -1 << (32 - length);int partsNum = 4;int bitsOfPart = 8;int maskParts[] = new int[partsNum];int selector = 0x000000ff;for (int i = 0; i < maskParts.length; i++) {int pos = maskParts.length - 1 - i;maskParts[pos] = (mask >> (i * bitsOfPart)) & selector;}String result = "";result = result + maskParts[0];for (int i = 1; i < maskParts.length; i++) {result = result + "." + maskParts[i];}System.out.println(result);return (maskParts[0] << 24) + (maskParts[1] << 16) + (maskParts[2] << 8) + (maskParts[3]);}

2,子網(wǎng)掩碼轉(zhuǎn)換成prefixLength長度

/***子網(wǎng)掩碼轉(zhuǎn)成長度* @param netMask* @return*/public static int calcNetMaskInt(String netMask) {Log.d("cnetMask", "netMask =" + netMask);StringBuffer sbf;String str;int prefixLength = 0, count = 0;String[] split = netMask.split("\\.");for (int n = 0; n < split.length; n++) {sbf = toBin(Integer.parseInt(split[n]));str = sbf.reverse().toString();//Log.e("net", split[n] + "===" + str);count = 0;for (int i = 0; i < str.length(); i++) {i = str.indexOf('1', i);if (i == -1) {break;}count++;}prefixLength += count;}Log.e("cnetMask", "netMask prefixLength=" + prefixLength);return prefixLength;}private static StringBuffer toBin(int x) {StringBuffer result = new StringBuffer();result.append(x % 2);x /= 2;while (x > 0) {result.append(x % 2);x /= 2;}return result;}

總結(jié)

以上是生活随笔為你收集整理的子网掩码与prefixLength长度的互相转换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。