Разбор бинарных данных. Получение double |
Здравствуйте, гость ( Вход | Регистрация )
Разбор бинарных данных. Получение double |
rcdimon |
22.8.2011, 13:44
Сообщение
#1
|
Студент Группа: Участник Сообщений: 69 Регистрация: 27.10.2009 Пользователь №: 1183 Спасибо сказали: 1 раз(а) Репутация: 0 |
Всем привет.
Работаю с ГЛОНАСС-приемником по ком-порту. Он шлет бинарные пакеты определенной структуры. Я получаю эти пакеты в массив QByteArray. Я знаю, что, например, байты 4,5,6,7,8,9,10,11 хранят в себе данные типа double. Как мне эти 8 байт преобразовать в обычную double переменную? Потом эту переменную мне нужно будет вывести на экран в формате "31.12347"? В добавок в документации к глонасс-приемнику видимо забыли указать little-endian или big-endian.... |
|
|
kuzulis |
22.8.2011, 14:03
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
Цитата Как мне эти 8 байт преобразовать в обычную double переменную? QByteArray::toDouble(bool &ok) ? Цитата Потом эту переменную мне нужно будет вывести на экран в формате "31.12347"? QString::number ( double n, char format = 'g', int precision = 6 ) PS: Мы не ассистенточитатели, да? Мы кодописатели? Сообщение отредактировал kuzulis - 22.8.2011, 14:06 |
|
|
rcdimon |
22.8.2011, 15:10
Сообщение
#3
|
Студент Группа: Участник Сообщений: 69 Регистрация: 27.10.2009 Пользователь №: 1183 Спасибо сказали: 1 раз(а) Репутация: 0 |
QByteArray::toDouble(bool &ok) самоотверженно выдает 0...
|
|
|
kuzulis |
22.8.2011, 15:29
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
QByteArray::toDouble(bool &ok) самоотверженно выдает 0... Значит пробовать как то так:
А вообще: Цитата Я знаю, что, например, байты 4,5,6,7,8,9,10,11 хранят в себе данные типа double. надо иметь описание на поля протокола!!! Разбирайся сам. Сообщение отредактировал kuzulis - 22.8.2011, 15:32 |
|
|
MJIbIu |
23.8.2011, 14:03
Сообщение
#5
|
Студент Группа: Участник Сообщений: 38 Регистрация: 14.4.2010 Пользователь №: 1630 Спасибо сказали: 3 раз(а) Репутация: 0 |
Всем привет. Работаю с ГЛОНАСС-приемником по ком-порту. Он шлет бинарные пакеты определенной структуры. Я получаю эти пакеты в массив QByteArray. Я знаю, что, например, байты 4,5,6,7,8,9,10,11 хранят в себе данные типа double. Как мне эти 8 байт преобразовать в обычную double переменную? Потом эту переменную мне нужно будет вывести на экран в формате "31.12347"? В добавок в документации к глонасс-приемнику видимо забыли указать little-endian или big-endian.... если у тебя именно байты 4, 5, 6, 7, 8, 9, 10, 11 3 1 . 1 2 3 4 7 как вытащить почитай в документации, а вот если они лежат как то по другому тогда и надо искать в протоколе обмена Сообщение отредактировал MJIbIu - 23.8.2011, 14:04 |
|
|
Текстовая версия | Сейчас: 14.1.2025, 6:12 |