十六进制字符串到BYTE c ++

问题描述 投票:0回答:2

我正在尝试以]的形式转换十六进制字符串>

std::string mystring = "00A4040C06FF5142534014";

给BYTE,形式为:

BYTE cmd2[] = {0x00, 0xA4, 0x04, 0x0C, 0x06, 0xFF, 0x51, 0x42, 0x53, 0x40, 0x14};

我尝试使用以下功能:

std::vector<char> HexToBytes(const std::string& hex)
{
    std::vector<char> bytes;
    for (unsigned int i = 0; i < hex.length(); i += 2) {
        std::string byteString = hex.substr(i, 2);
        char byte = (char) strtol(byteString.c_str(), NULL, 16);
        bytes.push_back(byte);
    }

    return bytes;
}

但是这并没有给我正确的转换。也许有人可以帮助我?

我正在尝试以std :: string mystring =“ 00A4040C06FF5142534014”的形式转换十六进制字符串;格式为BYTE cmd2 [] = {0x00,0xA4,0x04,0x0C,0x06,0xFF,0x51,0x42,0x53,...

c++ string hex byte
2个回答
0
投票

[如果我想举一个最小的例子,它将看起来像以下内容:


0
投票

[std::vector<char>const unsigned char*没有隐式转换。

© www.soinside.com 2019 - 2024. All rights reserved.