gpt4 book ai didi

c - C 中的 unsigned int 到 const char*

转载 作者:行者123 更新时间:2023-11-30 21:10:18 24 4
gpt4 key购买 nike

我正在使用一个接收 const char* 的函数。

long hex2long(const char* hexString)

我有 unsigned int 格式的 hexString,需要将其转换为 const char* 才能使用该函数。

我也尝试过使用 strtol() 但这是同样的问题。

有什么想法吗?

这是函数:

static const long hextable[] = 
{
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 10-19
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 30-39
-1, -1, -1, -1, -1, -1, -1, -1, 0, 1,
2, 3, 4, 5, 6, 7, 8, 9, -1, -1, // 50-59
-1, -1, -1, -1, -1, 10, 11, 12, 13, 14,
15, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 70-79
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 10, 11, 12, // 90-99
13, 14, 15, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 110-109
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 130-139
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 150-159
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 170-179
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 190-199
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 210-219
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 230-239
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1
};


long hex2long(const char* hexString)
{
long ret = 0;

while (*hexString && ret >= 0)
{
ret = (ret << 4) | hextable[*hexString++];
}

return ret;
}

最佳答案

你的问题很困惑。您的函数解析数字的十六进制表示形式并以 long 形式返回该值。当遇到非十六进制数字时,您应该停止解析,并且可以忽略任何前导空白字符。库函数 strtol() 就是这样做的,最后一个参数(转换基数)的值为 16

您还想实现什么目标?

关于c - C 中的 unsigned int 到 const char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30154224/

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