我有打击QByteArray.
QByteArray ba;
ba[0] = 0x01;
ba[1] = 0x10;
ba[2] = 0x00;
ba[3] = 0x07;
Run Code Online (Sandbox Code Playgroud)
我真的不知道如何将此QByteArray转换为具有" 01100007 "的结果字符串,我将使用QRegExp对此字符串进行模式匹配?
hyd*_*yde 11
首先,QByteArray它不包含"十六进制值",它包含字节(顾名思义).仅当数字作为文本打印时,数字才能为"十六进制".
你的代码应该是:
QByteArray ba(4, 0); // array length 4, filled with 0
ba[0] = 0x01;
ba[1] = 0x10;
ba[2] = 0x00;
ba[3] = 0x07;
Run Code Online (Sandbox Code Playgroud)
无论如何,要转换QByteArray为十六进制字符串,你很幸运:只需使用QByteArray::toHex()方法!
QByteArray ba_as_hex_string = ba.toHex();
Run Code Online (Sandbox Code Playgroud)
请注意,它返回8位文本,但您可以将其分配给a QString而不必担心编码,因为它是纯ASCII.如果你想要十六进制数字而不是默认af的大写AF,你可以用来转换大小写.QByteArray::toUpper()
| 归档时间: |
|
| 查看次数: |
13249 次 |
| 最近记录: |