在c ++中反序列化非常大的数字

时间:2014-09-11 20:05:53

标签: c++ serialization largenumber qbytearray

我应该编写一个代码,可以使用串行端口(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;
}

其中tempbaQByteArray,其中包含从串行端口读取的数据。这种方法是否正确?哪里可以失败?有没有更好的方法来实现这个目标?

0 个答案:

没有答案