如何将长十六进制字符串转换为字节数组(0x69、0x63等)

问题描述 投票:0回答:1

我有一个很长的十六进制字符串(大约 8000 字节),我想将其转换为我认为的字节数组。 (如果我把名字写错了,请多多包涵。)换句话说,字符串开始

69636E

等等

我想要一种方法将其变成一个在 C 源代码中看起来像这样的字符串:

0x69, 0x63, 0x6e,

等等

有没有一个工具可以做到这一点?我在 Windows 中工作,但也可以在 Mac 中工作。

理想情况下,它会在每 16 个字节后用换行符中断生成的字符串,但我知道如果需要的话我可以手动完成此操作。

我的目标是替换某些 C 代码中的现有字符串(来自 Basilisk II classic-Mac 模拟器的源代码)。我尝试替换的代码是此文件中从第 113 行开始的长字符串:

posix_emu.cpp

arrays string hex byte
1个回答
0
投票

def 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)

	
© www.soinside.com 2019 - 2024. All rights reserved.