gpt4 book ai didi

将十六进制字符串转换为十六进制字节,无需在没有库的c中使用

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

我有一个字符串{F0A9B8BDE38182}
我需要将其转换为十六进制字节

0xF0 0xA9 0xB8 0xBD 0xE3 0x81 0x82

我可以使用以下代码得到答案

for (i = 0; i < (str_len /2); i++)
{
sscanf(hexstring + 2*i, "%02x", &bytearray[i]);
printf("bytearray %d: %02x\n", i, bytearray[i]);
}

但我需要不使用sscanf

最佳答案

您需要将单个ASCII转换为相应的HEX数字,然后使用|组成完整的字节 .

示例:

   for (i = 0; i < strlen(s)/2; i++)
{
bytearray[i] = AsciiToHex(s[2*i])<<4 | AsciiToHex(s[2*i+1]);
printf("bytearray %d: %02X\n", i, bytearray[i]);
}

uint8_t AsciiToHex(char c){

if (c >= '0' && c<='9') return c - '0';
else if (c >= 'A' && c <= 'F') return 10 + c - 'A';
else return 0;
}

关于将十六进制字符串转换为十六进制字节,无需在没有库的c中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56476518/

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