将十六进制数据转换为数组形式的Python实现

该文章介绍了如何使用Python处理十六进制数据,将其转换为适合C语言代码的数组形式。通过字符串分割、添加前缀、重组和格式化,最终生成可直接用于C语言程序的数组字符串。
摘要由CSDN通过智能技术生成

十六进制数据在计算机领域中很常见。但是,有时需要将十六进制数据转换为可供使用的数组形式。在这篇技术博客中,我们将讨论如何使用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================================")

运行结果如下所示。

对于输出的字符串可以拷贝到数组中,方便使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

eyyhappy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值