将十六进制字符串转换为字节数组
处理二进制数据时,通常需要将十六进制字符串转换为字节数组。十六进制字符串表示十六进制格式的原始二进制数据。以下是如何使用可变长度十六进制字符串在 C 中完成此转换。
要将十六进制字符串“01A1”转换为字节数组,我们将使用以下方法:
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; }
该函数迭代十六进制字符串,一次提取字符对并使用 strtol() 函数将它们转换为相应的字节。然后返回生成的字节数组。
将十六进制字符串转换为字节数组后,可以将其存储在 char* 或 std::vector
以上是如何在 C 中将十六进制字符串转换为字节数组?的详细内容。更多信息请关注PHP中文网其他相关文章!