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());
    }
}
IP 地址转十六进制字符串:节省数据库空间的技巧

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

免费AI点我,无需注册和登录