Russian Qt Forum

Qt => Общие вопросы => Тема начата: xk от Май 04, 2007, 21:08



Название: QByteArray -> int32, float32
Отправлено: xk от Май 04, 2007, 21:08
Есть QByteArray с 4 байтами, полученными по сети. Нужно эти байты преобразовать в int32 и float32.
Никак не пойму, как этого добиться средствами Qt.

Для int32 заюзал пока такой код, но он не кроссплатформенный:
Код:

char c1 = bytes.at(0);
char c2 = bytes.at(1);
char c3 = bytes.at(2);
char c4 = bytes.at(3);

qint32 score = ((unsigned char)c4<<24)|((unsigned char)c3<<16)|((unsigned char)c2<<8)|((unsigned char)c1);


Наверняка есть какой-то способ добиться того же с помощью Qt, с учетом big endian, little endian и т.д.


Название: QByteArray -> int32, float32
Отправлено: Tonal от Май 05, 2007, 08:11
Если эти байты в сеть положил кто-то, то смотри спецификацию на его протокол.
А если ты сам, то кто тебе мешает QDataStream использовать, и не думать о размере конца? ;-)