IP 地址转十六进制字符串:节省数据库空间的技巧
IP 地址转十六进制字符串:节省数据库空间的技巧
在数据库中存储 IP 地址时,通常需要 32 位,但将其转换为十六进制字符串可以有效地节省存储空间。
例如,IP 地址 '192.168.0.1' 转换为十六进制字符串后为 'c0a80001',仅需要 8 位。
输入: 输入一行,为一个合法的 IP 地址(四个不超过 255 的数字,三个点)。
输出: 对于每组数据输出一行,为其十六进制字符串,字母小写。
样例输入:
192.168.0.1
样例输出:
c0a80001
Python 解法:
import socket
def ip_to_hex(ip):
hex_ip = ''
for octet in ip.split('.'):
hex_octet = hex(int(octet))[2:].zfill(2)
hex_ip += hex_octet
return hex_ip
ip = input().strip()
hex_ip = ip_to_hex(ip)
print(hex_ip)
Java 解法:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String ip = scanner.nextLine().trim();
String[] octets = ip.split("\\.");
StringBuilder hexIP = new StringBuilder();
for (String octet : octets) {
String hexOctet = Integer.toHexString(Integer.parseInt(octet)).toUpperCase();
hexIP.append(hexOctet);
}
System.out.println(hexIP.toString());
}
}

原文地址: http://www.cveoy.top/t/topic/l3T 著作权归作者所有。请勿转载和采集!