【问题标题】:Convert Hex String to BYTE Array in C++在 C++ 中将十六进制字符串转换为字节数组
【发布时间】:2017-12-01 14:51:40
【问题描述】:

转换此字符串的最简单方法是什么:
string strHex = "0123456789ABCDEF0123456789ABCDEF";

在这个 BYTE 数组中:
BYTE bArray[] = { 0x01,0x23,0x45,0x67, 0x89, 0xAB, 0xCD, 0xEF, 0x01,0x23,0x45,0x67, 0x89, 0xAB, 0xCD, 0xEF };

谢谢!

【问题讨论】:

  • SO 不是代码编写服务。请展示您的尝试,并说明您的解决方案中的问题。
  • 最简单的方法是尝试一下,让它在适当的时候向 StackOverflow 寻求帮助(这意味着不寻求调试帮助),然后发布到代码审查以征求有关如何改善
  • 这是我最后的选择。我已经尝试了很多,我在这个论坛和谷歌搜索过,我不能。我将添加我的尝试。感谢您的帮助。
  • std::vector<unsigned char> bytes; for(auto it = strHex.begin(); it < strHex.end() - 1; it += 2) { bytes.push_back(std::stoi(std::string(it, it + 2), 0, 16)); }

标签: c++ visual-c++


【解决方案1】:

我使用 xxd 工具将所需的任意数据文件转换为可编译的字节数组。

echo Good data > good.bin
xxd -i good.bin > good_bin.cpp
clang++ -c good_bin.cpp

【讨论】:

    猜你喜欢
    • 2017-06-17
    • 1970-01-01
    • 2019-03-07
    • 2021-10-31
    • 2019-02-12
    相关资源
    最近更新 更多