时效性
2025年7月26日
题目来源
题目描述
Write Up
随波逐流:16进制转字符串
总结
转换原理:
- 分割16进制字符串:每两个字符一组(例如
"4865"→["48", "65"])。 - 转换为十进制整数:将每组16进制数转换为十进制(例如
"48"→ 72)。 - 转换为ASCII字符:用十进制值获取对应字符(例如
72→'H')。 - 拼接结果:将所有字符连接成字符串。
def hex_to_string(hex_str):
# 移除空格和换行等无关字符
hex_str = hex_str.replace(" ", "").replace("\n", "")
# 检查长度是否为偶数
if len(hex_str) % 2 != 0:
raise ValueError("无效的16进制字符串(长度必须为偶数)")
# 每两个字符一组,转换为字符串
result = ""
for i in range(0, len(hex_str), 2):
hex_byte = hex_str[i:i+2] # 提取两个字符(1字节)
decimal_value = int(hex_byte, 16) # 16进制 → 10进制
result += chr(decimal_value) # 10进制 → ASCII字符
return result
# 示例用法
hex_input = "48656C6C6F20576F726C64" # "Hello World"
print(hex_to_string(hex_input)) # 输出: Hello World