Я должен написать код, который может десериализовать числа, полученные от другого устройства через последовательный порт (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
заполнены данными, считанными из последовательного порта. Правильный ли этот подход? где это может быть провалено? Есть ли лучший способ добиться этого?
Задача ещё не решена.