用C++将六进制字符串转换为字节

Convert a hexstring to byte in C++

本文关键字:字符串 转换 字节 C++      更新时间:2023-10-16

我有一个十六进制字符串,如下所示:

char hexString = "1a";

我想把它转换成BYTE,这样它看起来像这样:

BYTE Anything[0x10] = { 0x1a };

在对流之后。我需要对16个字符串这样做,这样我就可以在的末尾看到这样的东西

BYTE Anything[0x10] = { hexToByte(hexString1), hexToByte(hexString2), 16 times };

任何想法,因为我不知道怎么做!

BYTE Anything[0x10] = {
    (BYTE)std::stoul(hexString1, nullptr, 16),
    (BYTE)std::stoul(hexString2, nullptr, 16), ... };

只有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;
}