21xrx.com
2024-12-22 19:41:57 Sunday
登录
文章检索 我的文章 写文章
"C++ 实现将 16 进制字符串转换为字节数组"
2023-07-08 14:48:54 深夜i     --     --
C++ 16进制字符串 字节数组 转换

C++ 实现将 16 进制字符串转换为字节数组

在C++编程中,有时需要将16进制字符串转换为字节数组,可以使用以下代码实现:


#include <string>

#include <vector>

std::vector<uint8_t> HexStringToByteArray(std::string hexString) {

  std::vector<uint8_t> byteArray;

  for (size_t i = 0; i < hexString.length(); i += 2) {

    std::string byteString = hexString.substr(i, 2);

    uint8_t byte = (uint8_t)(strtol(byteString.c_str(), NULL, 16));

    byteArray.push_back(byte);

  }

  return byteArray;

}

这个函数使用了一个字符串输入,并将其转换为一个包含8位无符号整数的向量。该函数的实现非常简单,它通过循环遍历每两个字符,将这两个字符转换为一个16进制字节,并将其添加到字节数组中。

例如,如果我们有这个16进制字符串 "416273647", 我们可以使用这个函数将其转换为一个字节数组:


std::string hexString = "416273647";

std::vector<uint8_t> byteArray = HexStringToByteArray(hexString);

这将返回一个长度为 4 的字节数组,它等于 0x73。

总之,这个函数非常实用,能够方便地将16进制字符串转换为字节数组,在C++编程过程中非常有用。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复