gpt4 book ai didi

c++ - CString 十六进制值转换为字节数组

转载 作者:行者123 更新时间:2023-11-30 00:55:27 27 4
gpt4 key购买 nike

我一直在尝试执行从包含十六进制字符串的 CString 到字节数组的转换,并且一直在

至今未成功。我查看了论坛,到目前为止似乎都没有帮助。有没有一个功能只有几个

执行此转换的代码行数?

我的代码:

BYTE abyData[8];    // BYTE = unsigned char

CString sByte = "0E00000000000400";

期待:

abyData[0] = 0x0E;
abyData[6] = 0x04; // etc.

最佳答案

您一次可以简单地吞噬两个字符:

unsigned int value(char c)
{
if (c >= '0' && c <= '9') { return c - '0'; }
if (c >= 'A' && c <= 'F') { return c - 'A' + 10; }
if (c >= 'a' && c <= 'f') { return c - 'a' + 10; }

return -1; // Error!
}

for (unsigned int i = 0; i != 8; ++i)
{
abyData[i] = value(sByte[2 * i]) * 16 + value(sByte[2 * i + 1]);
}

当然,8 应该是您的数组的大小,并且您应该确保字符串正好是两倍长。其检查版本将确保每个字符都是有效的十六进制数字,如果不是这种情况,则发出某种类型的错误信号。

关于c++ - CString 十六进制值转换为字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12493699/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com