整型和 IP 地址之间可以相互转换。IPv4 是一个 32 位的数字,通常表示为四个数字(每个数字 8 位)的点分十进制格式,例如 192.168.1.1。IPv4 地址可以使用以下方法将其转换为一个整数:
将 IP 地址拆分成四个 8 位二进制数(每个数范围为 0 到 255),然后将它们组合在一起形成一个 32 位的整数。例如,192.168.1.1 可以转换为十进制数 3232235777(即 192*(256*256*256) + 168*(256*256) + 1*(256) + 1)。
Java 中可以使用以下代码将 IP 地址转换为整数:
```java
String ipAddress = "192.168.1.1";
String[] ipAddressInArray = ipAddress.split("\\.");
long result = 0;
for (int i = 0; i < ipAddressInArray.length; i++) {
int power = 3 - i;
int ip = Integer.parseInt(ipAddressInArray[i]);
result += ip * Math.pow(256, power);
}
System.out.println(result); // 输出 3232235777
```
将一个整数转换为 IP 地址,需要将整数的 32 位分成四个 8 位的部分(4 个字节),并将它们转换为点分十进制格式。可以使用以下代码将整数转换为 IP 地址:
```java
long ipAddressInLong = 3232235777L;
StringBuilder ipAddress = new StringBuilder();
for (int i = 0; i < 4; i++) {
int shift = (3 - i) * 8;
ipAddress.append((ipAddressInLong & (0xff << shift)) >> shift);
if (i != 3) {
ipAddress.append(".");
}
}
System.out.println(ipAddress); // 输出 192.168.1.1
```
在上面的代码中,将整数和各个字节相应的掩码进行按位与操作,然后将结果右移并添加到 IP 地址字符串中。
本文暂时没有评论,来添加一个吧(●'◡'●)