gpt4 book ai didi

c - 如何使用和不使用 sprintf 在 C 中将 Hex 转换为 Ascii?

转载 作者:太空狗 更新时间:2023-10-29 15:53:39 26 4
gpt4 key购买 nike

我使用 strtol 将字符串转换为十六进制,现在我需要将它打印到屏幕上。我不确定我是否可以使用 sprintf,因为我只有 20k 的内存可以在这个板上使用。欢迎选择。

最佳答案

要手动执行此操作,最简单的方法是使用一个表将 nybbles 映射到 ASCII:

static const char nybble_chars[] = "0123456789ABCDEF";

然后将一个字节转换为 2 个十六进制字符——假设 unsigned char 是字节的最佳表示,但不对其大小做任何假设——提取每个 nybble 并获取它的字符:

void get_byte_hex( unsigned char b, char *ch1, char *ch2 ) {
*ch1 = nybble_chars[ ( b >> 4 ) & 0x0F ];
*ch2 = nybble_chars[ b & 0x0F ];
}

这直接扩展到更广泛的数据类型,并且应该在各种架构中生成相当简洁的代码。

关于c - 如何使用和不使用 sprintf 在 C 中将 Hex 转换为 Ascii?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2710016/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com