![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
novichkov |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 64 Регистрация: 20.3.2008 Из: Северодвинск Пользователь №: 128 Спасибо сказали: 6 раз(а) Репутация: ![]() ![]() ![]() |
Знатоки низкоуровневых функций 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 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 8.6.2025, 14:32 |