Russian Qt Forum

Qt => Общие вопросы => Тема начата: izoomer от Май 11, 2007, 10:48



Название: [qt-4.2.0] Опять про кодировки и перекодировки
Отправлено: izoomer от Май 11, 2007, 10:48
Вот получаю от внешнего устройства набор байтов QByteArray ... и в четвертом байте есть данные int которые мне нужны ... так вот ... если делаю так
Код:

     qDebug() << msgbuf.at(3);

или
Код:

     QString size(msgbuf.at(3));
     qDebug() << size;


то нет числа нашего, левый символ выводится ...
если так ...
Код:

     qDebug() << (uchar)msgbuf[3];

то вижу данные , но как их получить в int ?!
Вообще как мне по умному конвертировать ?
Прошу прощения за затасканую тему ...


Название: [qt-4.2.0] Опять про кодировки и перекодировки
Отправлено: Sergeich от Май 11, 2007, 12:01
Ниче не понял :shock:
А чем не устраивает
Код:
int size = msgbuf.at(3);
qDebug() << size;


Название: [qt-4.2.0] Опять про кодировки и перекодировки
Отправлено: AlexVR от Май 11, 2007, 12:16
И опять же, int не может храниться в одном байте!!!
* Если тебя интересует 4-ый байт, то (uchar)msgbuf[3] оно и есть.
* Если тебя интересует int начинающейся с 4-го байта, записаный в обратном порядке, то, например, так *(int*)(&msgbuf.data()[3])