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

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

Susan Sarandon
发布: 2024-12-24 11:50:14
原创
602 人浏览过

How to Convert a Hexadecimal String to a Byte Array in C  ?

十六进制字符串到字节数组的转换

在编程场景中,经常需要对十六进制字符串进行转换,十六进制字符串以紧凑的形式表示二进制数据格式,转换为字节数组。字节数组更适合直接数据操作和存储。

这种转换的一种有效方法是利用标准 strtol() 函数。此函数将一串数字解释为指定基数的整数,使我们能够提取十六进制字符的整数表示形式。

这是 C 中的实现:

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,为十六进制解释提供基数 16。然后将生成的 char 附加到字节向量。

通过使用此函数,您可以轻松地将十六进制字符串转换为字节数组,从而实现二进制数据的高效处理和存储。

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

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