首页 > 后端开发 > C++ > 如何在 C 中将十六进制字符串转换为字节数组?

如何在 C 中将十六进制字符串转换为字节数组?

Linda Hamilton
发布: 2024-12-19 11:03:33
原创
886 人浏览过

How to Convert Hex Strings to Byte Arrays in C  ?

将十六进制字符串转换为字节数组

处理二进制数据时,通常需要将十六进制字符串转换为字节数组。十六进制字符串表示十六进制格式的原始二进制数据。以下是如何使用可变长度十六进制字符串在 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 类型的变量中。根据您的具体应用的要求。通过将字节数组写入文件并使用 hexdump -C 命令,您可以验证数据是否对应于原始的十六进制字符串。

以上是如何在 C 中将十六进制字符串转换为字节数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板