整數與IP位址的轉換

2021-09-25 18:55:47 字數 1740 閱讀 8224

原理:ip位址的每段可以看成是乙個0-255的整數,把每段拆分成乙個二進位制形式組合起來,然後把這個二進位制數轉變成

乙個長整數。

每段數字             相對應的二進位制數

10                   00001010

0                    00000000

3                    00000011

193                  11000001

組合起來即為:00001010 00000000 00000011 11000001,轉換為10進製數就是:167773121,即該ip位址轉換後的數字就是它了。

每段可以看成是乙個0-255的整數,需要對ip位址進行校驗

輸入描述:

輸入 1 輸入ip位址

2 輸入10進製型的ip位址

輸出描述:輸出

1 輸出轉換成10進製的ip位址

2 輸出轉換後的ip位址

示例1輸入

10.0.3.193

167969729

輸出

167773121

10.3.3.193

public class ipconvert 

}//ip位址轉為十進位制ip位址

//1. 按.分割,得到4個字串 -> 整數

//2.通過integer.tobinarystring(integer.parseint(s[i])) 得到每個整數對應的二進位制序列,如果長度不為8需要自行在前面加0

//3.組合每個數的二進位制序列,然後通過long.parselong(sb.tostring(), 2)得到此二進位制對應的十進位制數

private static void converttoip10(string ip)

t = sx.tostring() + t;}}

long res = long.parselong(sb.tostring(), 2);

system.out.println(res);

}//十進位制ip位址轉為ip位址

//1.通過long.tobinarystring(long.parselong(ip10))得到此十進位制ip位址對應的二進位制序列,不足32時需要自行在高位補0

//2.每隔8個位元位進行劃分,共得到4部分

//3.每部分分別通過integer.parseint(four[i], 2)得到對應十進位制數,然後用.連線得到最終的ip位址

private static void converttoip(string ip10)

bin = sb.tostring() + bin;

}string four = new string[4];

four[0] = bin.substring(0, 8); //取得每個部分

four[1] = bin.substring(8, 16);

four[2] = bin.substring(16, 24);

four[3] = bin.substring(24, 32);

stringbuilder s = new stringbuilder();

for (int i = 0; i < 4; i++)

}system.out.println(s.tostring());

}}

整數與ip位址間的轉換

原理 ip位址的每段可以看成是乙個0 255的整數,把每段拆分成乙個二進位制形式組合起來,然後把這個二進位制數轉變成 乙個長整數。舉例 乙個ip位址為10.0.3.193 每段數字 相對應的二進位制數 10 00001010 0 00000000 3 00000011 193 11000001 組合...

整數與IP位址間的轉換

原理 ip位址的每段可以看成是乙個0 255的整數,把每段拆分成乙個二進位制形式組合起來,然後把這個二進位制數轉變成 乙個長整數。舉例 乙個ip位址為10.0.3.193 每段數字 相對應的二進位制數 10 00001010 0 00000000 3 00000011 193 11000001 組合...

IP位址與整數之間的轉換

1 ip位址轉換為整數原理 ip位址每段可以看成是8位無符號整數即0 255,把每段拆分成乙個二進位制形式組合起來,然後把這個二進位制數轉變成 乙個無符號32為整數。舉例 乙個ip位址為10.0.3.193 每段數字 相對應的二進位制數 10 00001010 0 00000000 3 000000...