我应该编写一个代码,可以使用串行端口(RS232)以QByteArray
的形式反序列化从另一个设备接收的数字,而不使用按位运算符。 QByteArray
可以包含从单个项目到超过20个项目甚至更多项目的任何长度的数据。这可能吗?
我到目前为止提出的解决方案是:
int numelems = 0;
int exp = 0;
for(int i = tempba.size() - 1 ; i > -1 ; --i) {
numelems += (unsigned char)tempba.at(i) * pow(256, exp);
++exp;
}
其中tempba
是QByteArray
,其中包含从串行端口读取的数据。这种方法是否正确?哪里可以失败?有没有更好的方法来实现这个目标?