我有一个十六进制字符串,如下所示:
char hexString = "1a";
我希望将其转换为BYTE,因此它看起来像这样:
BYTE Anything[0x10] = { 0x1a };
收敛后。 我需要为16个字符串执行此操作,以便我在最后看起来像这样
BYTE Anything[0x10] = { hexToByte(hexString1), hexToByte(hexString2), 16 times };
任何想法,因为我不知道如何做到这一点!
答案 0 :(得分:1)
BYTE Anything[0x10] = {
(BYTE)std::stoul(hexString1, nullptr, 16),
(BYTE)std::stoul(hexString2, nullptr, 16), ... };
答案 1 :(得分:0)
只有256个值......足够小,可以在数组中查找。
int hexToByte(const char* strHex)
{
char* array[] = {"00", "01", "02", "03", "04", "05", "06", "07",
"08", "09", "0A", "0B", "0C", "0D", "0E", "0F",
"10", "11", "12", "13", "14", "15", "16", "17",
"18", "19", "1A", "1B", "1C", "1D", "1E", "1F"
/* Fill in the rest, up to FF */};
int i;
for(i=0; strcmp(strHex,array[i]); ++i) ;
return i;
}