十六进制数据在计算机领域中很常见。但是,有时需要将十六进制数据转换为可供使用的数组形式。在这篇技术博客中,我们将讨论如何使用Python将十六进制数据转换为C语言的数组形式。从而方便的放置到代码中,对于代码作比较。
实现的代码如下
data_hex = "90 8d cd 56 cf 8f aa ba 70 e7 79 84 c5 c4 2f 22 c8 ad 31 5a e1 71 d4 10 1f 07 6f 73 7c 16 0a af"
# 将字符串按空格分割成一个列表
hex_list = data_hex.split()
# 对于列表中的每个元素,将其转换为十六进制并添加 "0x" 前缀
hex_list = ["0x" + x for x in hex_list]
# 将列表分割成多个子列表,每个子列表包含最多16个元素
lines = [hex_list[i : i + 16] for i in range(0, len(hex_list), 16)]
# 对于每个子列表,使用 join() 函数将其连接成一行,并在元素之间添加逗号和空格
lines = [", ".join(line) for line in lines]
# 使用 join() 函数将所有行连接起来,中间用换行符分隔
out_data = "\n".join(lines)
print(out_data)
def format_hex_data(data_hex: str) -> str:
"""
将输入的十六进制数据字符串转换为格式化的输出字符串。
Args:
data_hex: 十六进制数据字符串,以空格分隔。
Returns:
格式化的输出字符串。
"""
# 将字符串按空格分割成一个列表
hex_list = data_hex.split()
# 对于列表中的每个元素,将其转换为十六进制并添加 "0x" 前缀
hex_list = ["0x" + x for x in hex_list]
# 将列表分割成多个子列表,每个子列表包含最多16个元素
lines = [hex_list[i : i + 16] for i in range(0, len(hex_list), 16)]
# 对于每个子列表,使用 join() 函数将其连接成一行,并在元素之间添加逗号和空格
lines = [", ".join(line) for line in lines]
# 使用 join() 函数将所有行连接起来,中间用换行符分隔
out_data = ",\n".join(lines)
return out_data
# import cmd
# class MyCmd(cmd.Cmd):
# intro = "Welcome to my interactive program!\nType help or ? to list commands.\n"
# prompt = "> "
# def do_hello(self, arg):
# print("Hello, world!")
# def do_quit(self, arg):
# print("Quitting...")
# return True
if __name__ == "__main__":
# MyCmd().cmdloop()
while True:
user_input = input("请输入字符串(输入'esc'退出):")
if user_input == "esc":
break
# 在这里添加对字符串的处理代码
processed_input = format_hex_data(user_input) # 这里仅仅将字符串转换为大写形式
print("处理后的字符串:\r\n", processed_input)
print("\n================================")
运行结果如下所示。
对于输出的字符串可以拷贝到数组中,方便使用。