|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.03.2011, 14:19 | #1 |
Пользователь
Регистрация: 28.03.2011
Сообщений: 53
|
Преобразование массива из байтов во fload
Имеется массив unsigned char
необходимо некоторые значения из него преобразовывать во float пишу float a; unsigned char b[100]; ... a = *(float*)&b[10]; В "a" заносится что-то совсем не то. Когда "вручную" переводишь нужные 4 байта из массива "b" во float всё правильно получается. В чём ошибка и почему это может происходить? |
28.03.2011, 14:23 | #2 |
Участник клуба
Регистрация: 06.04.2009
Сообщений: 1,524
|
А чем Вас не устраивает библиотечная функция atof ?
|
28.03.2011, 14:30 | #3 |
Пользователь
Регистрация: 28.03.2011
Сообщений: 53
|
Дело в том, что в массиве символов находится много данных в формате IEEE754
Пример: float a[10]; unsigned char b[100]; ... b[10] = 0xBF; b[11] = 0xF9; b[12] = 0x80; b[13] = 0xA0; ... for (int i = 0; i < 10; i++) { a[i] = *(float*)&b[10+i*sizeof(fload)]; } ... должно получиться: a[0] = -1,9492378 ... а получается что-то совсем не то, даже порядок не соблюдается Последний раз редактировалось Lyubimov; 28.03.2011 в 17:49. |
29.03.2011, 08:54 | #4 |
Пользователь
Регистрация: 28.03.2011
Сообщений: 53
|
Всё решилось, оказывается байты данных в обратном порядке шли
|
29.03.2011, 11:57 | #5 |
Software Developer
Участник клуба
Регистрация: 01.03.2011
Сообщений: 1,098
|
Не успел -)
Сам на днях сталкивался с подобной задачей. Кстати, есть альтернативный вариант с использованием sstream.
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв. Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062 |
29.03.2011, 12:58 | #6 |
Пользователь
Регистрация: 28.03.2011
Сообщений: 53
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сохранение массива байтов в файл | niki2012 | Общие вопросы Delphi | 4 | 09.01.2011 03:45 |
Запись байтов из массива | Ultr164 | Общие вопросы Delphi | 6 | 05.01.2011 16:26 |
Получение данных переменной ввиде массива байтов | chertovich | Общие вопросы Delphi | 3 | 18.12.2010 21:51 |
преобразование массива | PARTOS | Microsoft Office Excel | 4 | 20.01.2010 17:21 |
Данные из буфера обмена в виде массива байтов | eda | Microsoft Office Excel | 10 | 12.08.2009 17:00 |