【发布时间】:2017-12-18 11:03:11
【问题描述】:
我有小问题,我需要向 trought modbus 发送一些字节。 其中一个是:0x04和0xFB
QString first, second;
first = "0x04";
second = "0xFB"
QByteArray array;
array[0] = first;
array[1] = second;
ecc...ecc..
何来解决? 我试过这个:
array[0] = first.toUInt(nullptr,16);
但这最后将十六进制转换为其他值。 怎么解决 ?
【问题讨论】:
-
请看
QByteArray。我相信,其中一个示例正是您尝试做的事情。 -
您想以字节形式发送
0x04,还是以文本形式发送"0x04"? -
我想发送 0x04 字节,这个字节是从字符串生成的,我需要转换它。我使用了appena,但是QByteArray 的最终格式是错误的......我需要将字节插入到qbytearray 槽索引中。 (array[0] = first;
-
好的,知道了。
QString::toUInt()可以转换您的十六进制数,但是:您必须删除前面的0x(并使用基数 16)或使用基数 0。您可能必须将QString::toUInt()的结果转换为char以消除响应.编译器警告。
标签: c++ qt hex qbytearray