gpt4 book ai didi

C - 将十六进制值转换为 int 并存储在 char 数组中

转载 作者:行者123 更新时间:2023-11-30 18:35:33 25 4
gpt4 key购买 nike

我有以下代码,

int main(){
const char *hexstring = "f";
int number = (int)strtoul(hexstring, NULL, 16);

printf("%d", number); //Prints 15
char s[5];
s[0] = number;
printf("%d", s[0]); //prints 15
}

我运行它为“1F”,它按预期返回 31。

如果 hexString 值为 FF 或任何其他导致 3 位数字的值,s[0] 返回负值。

我做错了什么?如果 hexString 为“FF”,如何使 s[0] 保持 255。

最佳答案

char 可以有符号或无符号。看起来 char 已在您的平台上签名。在您的情况下,您想使用unsigned char

更改:

char s[5];

至:

unsigned char s[5];

关于C - 将十六进制值转换为 int 并存储在 char 数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46240674/

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