我有一个字符串,比如"03FE"
保存十六进制值。我需要将此字符串分成两部分,并将每个单独的部分转换为等效的十六进制。
也就是说,我需要0x03
一个变量和0xFE
另一个变量。
例如,如果我不必拆分字符串,我会这样做:
char *p;
uint32_t uv=0;
uv=strtoul(&string_to_convert, &p, 16);
如果我需要拆分字符串,我应该如何进行?
拆分输出strtoul
:
uint8_t uv_hi = uv >> 8;
uint8_t uv_lo = uv & 0xFF;
我认为
n+1
,您希望在其中将字符串拆分为n
字节标记snprintf()
将字符打印n
到临时缓冲区。strtoul()
将临时缓冲区内容转换为十六进制值。这样,您可以使用通用方法来标记化任何长度的源字符串并将其转换为标记,然后将它们转换为十六进制值。