QByteArray::fromHex
方法会将包含十六进制数的字符串转换成对应的 QByteArray
(字节数组)。下面是详解:
代码详解
QByteArray hexCommand = QByteArray::fromHex("10 00 00 08 01 03 01 00 00 00 00 00 00");
作用
QByteArray::fromHex
方法会解析字符串中的十六进制值(不区分大小写),并转换为实际的二进制数据。即每两个十六进制字符(如 “10”)会被解析为一个字节(8位)。
在本例中, "10 00 00 08 01 03 01 00 00 00 00 00 00"
经过 fromHex
方法解析后,将生成一个 QByteArray
,其中包含以下字节数据:
十六进制(字符串) | 二进制表示 | 十进制 | 字节数 |
---|---|---|---|
10 |
00010000 |
16 | 1 |
00 |
00000000 |
0 | 1 |
00 |
00000000 |
0 | 1 |
08 |
00001000 |
8 | 1 |
01 |
00000001 |
1 | 1 |
03 |
00000011 |
3 | 1 |
01 |
00000001 |
1 | 1 |
00 |
00000000 |
0 | 1 |
00 |
00000000 |
0 | 1 |
00 |
00000000 |
0 | 1 |
00 |
00000000 |
0 | 1 |
00 |
00000000 |
0 | 1 |
00 |
00000000 |
0 | 1 |
结果
上述代码生成的 QByteArray
中包含了 13 个字节,每个字节对应输入字符串中解析的十六进制值。
空格的作用
在 fromHex
中,字符串中的空格会被自动忽略,方便开发者更直观地编写和阅读十六进制字符串,不会对生成结果产生任何影响。