繁体   English   中英

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

[英]C - Convert Hex value to int and store in char array

我有以下代码,

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];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM