欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

IP地址與整數(shù)之間的轉(zhuǎn)換實(shí)現(xiàn)代碼(asp.net)

 更新時(shí)間:2012年09月23日 21:11:40   作者:  
把這個(gè)整數(shù)轉(zhuǎn)換成一個(gè)32位二進(jìn)制數(shù)。從左到右,每8位進(jìn)行一下分割,得到4段8位的二進(jìn)制數(shù),把這些二進(jìn)制數(shù)轉(zhuǎn)換成整數(shù)然后加上”?!本褪沁@個(gè)ip地址了
知識(shí)點(diǎn):一個(gè)二進(jìn)制數(shù),按位左移n位,就是把該數(shù)的值乘以2的n次方
二進(jìn)制除二即右移一位

1、IP地址轉(zhuǎn)換為整數(shù)

原理:IP地址每段可以看成是8位無(wú)符號(hào)整數(shù)即0-255,把每段拆分成一個(gè)二進(jìn)制形式組合起來(lái),然后把這個(gè)二進(jìn)制數(shù)轉(zhuǎn)變成
一個(gè)無(wú)符號(hào)32為整數(shù)。
舉例:一個(gè)ip地址為10.0.3.193
每段數(shù)字 相對(duì)應(yīng)的二進(jìn)制數(shù)
10 00001010
0 00000000
3 00000011
193 11000001
組合起來(lái)即為:00001010 00000000 00000011 11000001,轉(zhuǎn)換為10進(jìn)制就是:167773121,即該IP地址轉(zhuǎn)換后的數(shù)字就是它了。
復(fù)制代碼 代碼如下:

public class Ip {
public static void main(String[] args) {
System.out.print(ip2int("10.0.3.193"));
}
public static long ip2int(String ip) {
String[] items = ip.split("\\.");
return Long.valueOf(items[0]) << 24
| Long.valueOf(items[1]) << 16
| Long.valueOf(items[2]) << 8
| Long.valueOf(items[3]);
}
}


2、整數(shù)轉(zhuǎn)換為IP地址

原理:把這個(gè)整數(shù)轉(zhuǎn)換成一個(gè)32位二進(jìn)制數(shù)。從左到右,每8位進(jìn)行一下分割,得到4段8位的二進(jìn)制數(shù),把這些二進(jìn)制數(shù)轉(zhuǎn)換成整數(shù)然后加上”?!本褪沁@個(gè)ip地址了
舉例:167773121
二進(jìn)制表示形式為:00001010 00000000 00000011 11000001
分割成四段:00001010,00001010,00000011,11000001,分別轉(zhuǎn)換為整數(shù)后加上“。”就得到了10.0.3.193。
復(fù)制代碼 代碼如下:

public class Ip {
public static void main(String[] args) {
System.out.print(int2ip(167773121));
}
public static String int2ip(long ipInt) {
StringBuilder sb = new StringBuilder();
sb.append(ipInt & 0xFF).append(".");
sb.append((ipInt >> 8) & 0xFF).append(".");
sb.append((ipInt >> 16) & 0xFF).append(".");
sb.append((ipInt >> 24) & 0xFF);
return sb.toString();
}
}

相關(guān)文章

最新評(píng)論