16进制数与ascii码相互转换程序?
以下是Java代码示例,可以实现16进制数与ASCII码的相互转换:
将16进制数转换为ASCII码:
String hexStr = "68656c6c6f20776f726c64"; // 16进制字符串
String asciiStr = new String(DatatypeConverter.parseHexBinary(hexStr)); // 转换为ASCII码字符串
System.out.println(asciiStr); // 输出结果:hello world
将ASCII码转换为16进制数:
String asciiStr = "hello world"; // ASCII码字符串
String hexStr = DatatypeConverter.printHexBinary(asciiStr.getBytes()); // 转换为16进制字符串
System.out.println(hexStr); // 输出结果:68656C6C6F20776F726C64
以上代码中,`DatatypeConverter` 类是 Java 提供的一个工具类,可以方便地进行二进制和字符串之间的转换。`parseHexBinary()` 方法可以将16进制字符串转换为字节数组,然后通过 `String` 的构造函数将字节数组转换为 ASCII 码字符串。`getBytes()` 方法可以将字符串转换为字节数组,然后通过 `DatatypeConverter.printHexBinary()` 方法将字节数组转换为16进制字符串。
以下是Python代码示例,可以实现16进制数与ASCII码的相互转换:
# 将字符串转换为16进制数
def str_to_hex(string):
hex_string = ''
for char in string:
hex_string += hex(ord(char))[2:]
return hex_string
# 将16进制数转换为字符串
def hex_to_str(hex_string):
string = ''
for i in range(0, len(hex_string), 2):
string += chr(int(hex_string[i:i+2], 16))
return string
# 示例
input_str = 'Hello, world!'
hex_string = str_to_hex(input_str)
print(hex_string) # 输出: 48656c6c6f2c20776f726c6421
output_str = hex_to_str(hex_string)
print(output_str) # 输出: Hello, world!

