gpt4 book ai didi

c - 将十六进制字符串转换为十六进制字符数组的快速方法

转载 作者:行者123 更新时间:2023-12-02 04:32:08 25 4
gpt4 key购买 nike

我需要将包含十六进制数字的字符串转换为无符号字符数组。

我在 QT 中有这段代码:

QString data
...
QByteArray byteArray;
int bufSize = (data.length()) / 2;
for (int i = 0; i < bufSize; i++)
{
byteArray[i] = data.mid(2*i, 2).toInt(NULL, 16);//Read the string two characters at a time.
}

我需要在 C 中执行相同的操作,但我不知道如何转换它。

有人可以帮助我吗?

最佳答案

最快的方法是使用查找数组:

int cvt[UCHAR_MAX+1] = {0};
cvt['0'] = 0;
cvt['1'] = 1;
// ...
cvt['9'] = 9;
cvt['a'] = 10;
// ...
cvt['f'] = 15;
cvt['A'] = 10;
// ...
cvt['F'] = 15;
for (i = 0; i < sizeof arr; i++) {
arr[i] = 16 * cvt[(unsigned char)data[2*i]] +
cvt[(unsigned char)data[2*i + 1]];
}

关于c - 将十六进制字符串转换为十六进制字符数组的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22807969/

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