我有一个很长的十六进制字符串(大约 8000 字节),我想将其转换为我认为的字节数组。 (如果我把名字写错了,请多多包涵。)换句话说,字符串开始
69636E
等等
我想要一种方法将其变成一个在 C 源代码中看起来像这样的字符串:0x69, 0x63, 0x6e,
等等
有没有一个工具可以做到这一点?我在 Windows 中工作,但也可以在 Mac 中工作。理想情况下,它会在每 16 个字节后用换行符中断生成的字符串,但我知道如果需要的话我可以手动完成此操作。
我的目标是替换某些 C 代码中的现有字符串(来自 Basilisk II classic-Mac 模拟器的源代码)。我尝试替换的代码是此文件中从第 113 行开始的长字符串:
posix_emu.cppdef hex_to_byte_array(hex_string):
bytes_list = [f"0x{hex_string[i:i+2]}" for i in range(0, len(hex_string), 2)]
lines = []
for i in range(0, len(bytes_list), 16):
lines.append(", ".join(bytes_list[i:i+16]))
return ",\n".join(lines)
with open("input.txt", "r") as input_file:
hex_string = input_file.read().strip()
byte_array = hex_to_byte_array(hex_string)
with open("output.txt", "w") as output_file:
output_file.write(byte_array)