crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

novichkov
  опции профиля:
сообщение 22.2.2012, 14:00
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 64
Регистрация: 20.3.2008
Из: Северодвинск
Пользователь №: 128

Спасибо сказали: 6 раз(а)




Репутация:   1  


Знатоки низкоуровневых функций C/C++! Помогите, пожалуйста, решить проблему.

В одной не очень хорошо написанной программе в файлы описаний данных, которые представляют собой простые ini файлы, разработчик программы пишет действительные параметры в виде
AmplLevel=(0BC0000000000000) <- строковое представление числа в формате double
XStep=(00000000) <- строковое представление числа в формате float

Мне нужно декодировать эти строки, то есть получить соответствующие значения параметров.
Для float решение простое:

char *hex_string = ....
float f;
sscanf(hex_string,"%x",&f);

А вот для double это не работает. Подскажите, как можно переконвертировать строку, чтобы получить нужный результат?

Для справки:
0x 3ff0 0000 0000 0000 = 1
0x 3ff0 0000 0000 0001 ≈ 1.0000000000000002, the next higher number > 1
0x 3ff0 0000 0000 0002 ≈ 1.0000000000000004
0x 4000 0000 0000 0000 = 2
0x c000 0000 0000 0000 = –2
0x3fd5 5555 5555 5555 = 0.333333333333333314829616256247390992939472198486328125
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 8.6.2025, 14:32