gpt4 book ai didi

在 C 中将 int 转换为 2 字节的十六进制值

转载 作者:太空狗 更新时间:2023-10-29 16:29:13 25 4
gpt4 key购买 nike

我需要将一个 int 转换为一个 2 字节的十六进制值以存储在一个 char 数组中,在 C 中。我该怎么做?

最佳答案

如果您被允许使用库函数:

int x = SOME_INTEGER;
char res[5]; /* two bytes of hex = 4 characters, plus NULL terminator */

if (x <= 0xFFFF)
{
sprintf(&res[0], "%04x", x);
}

您的整数可能包含超过四个十六进制数字的数据,因此首先要检查。

如果不允许使用库函数,请手动将其分成 nybbles:

#define TO_HEX(i) (i <= 9 ? '0' + i : 'A' - 10 + i)

int x = SOME_INTEGER;
char res[5];

if (x <= 0xFFFF)
{
res[0] = TO_HEX(((x & 0xF000) >> 12));
res[1] = TO_HEX(((x & 0x0F00) >> 8));
res[2] = TO_HEX(((x & 0x00F0) >> 4));
res[3] = TO_HEX((x & 0x000F));
res[4] = '\0';
}

关于在 C 中将 int 转换为 2 字节的十六进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4085612/

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