Название: QByteArray to Int без QDataStream Отправлено: YvenTitan от Январь 20, 2017, 17:11 Здравствуйте
Можете подсказать, как QByteArray преобразовать в Int без использования QDataStream. Мне сказали, что через QDataStream работает медленнее. Это правда? Название: Re: QByteArray to Int без QDataStream Отправлено: Авварон от Январь 20, 2017, 17:12 Код: T qFromBigEndian(const void *src); Название: Re: QByteArray to Int без QDataStream Отправлено: YvenTitan от Январь 20, 2017, 17:32 Спасибо
Название: Re: QByteArray to Int без QDataStream Отправлено: YvenTitan от Январь 20, 2017, 18:09 Делаю так
quint16 num = qFromLittleEndian<quint16>((uchar*)ba.data()); Все работает. Можете подсказать, а если число начинается, к примеру, с третьего байта(третий и четвертые байты QByteArray), то как преобразовать? Хотелось бы без копирования двух байт в отдельный массив Название: Re: QByteArray to Int без QDataStream Отправлено: Пантер от Январь 20, 2017, 20:03 Код
Название: Re: QByteArray to Int без QDataStream Отправлено: YvenTitan от Январь 25, 2017, 11:02 Спасибо
А если надо из QByteArray в тип float, то можно через qFromLittleEndian? qFromLittleEndian<float>(reinterpret_cast<const uchar*> (ba.data() + 2)); так пишет "underfined references to 'float qFromLittleEndian<float>(unsigned char const*)'" Название: Re: QByteArray to Int без QDataStream Отправлено: kuzulis от Январь 25, 2017, 11:09 Используй QDataStream и не мучайся.
Название: Re: QByteArray to Int без QDataStream Отправлено: Пантер от Январь 25, 2017, 11:11 У меня работает. Посмотри в исходниках Qt есть ли спецификация qFromLittleEndian для float.
|