![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Евгенний |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 9.11.2004 Репутация: нет Всего: нет |
Как преобразовать из строки (шестнадцатеричная запись) в число одинарной точности.
48 - E1 - 19 - 87 преобразовать в 76,94. 85 - EB - 7B - 86 преобразовать в 62,98. AE - 47 - 2C - 87 преобразовать в 86,14. 52 - B8 - OA – 87 преобразовать в 69,36. Заранее благодарю. |
|||
|
||||
| shedon |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 4 Всего: 11 |
А что такое
если да, то переводишь число в дес. вид и делаешь, что-то наподобие след. кода
-------------------- Programming is like sex: One mistake and you have to support it your lifetime |
||||
|
|||||
| Евгенний |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 9.11.2004 Репутация: нет Всего: нет |
Переделываю программу, написанную на японском языке программирования BASIC(86), там есть такая функция MKS - преобразовывает числа одинарной точности (76,94; 62,98; 86,14; 69,36) в строку.
Как называется данный формат чисел не знаю. Хотя именно это и требуется узнать. Понять технологию преобразования из шестнадцатеричной записи(двоичной) в обычное число с плавающей точкой (где храниться экспонента, а где мантисса). Искренне надеюсь на помощь. Добавлено @ 12:47 Предложенный вариант не срабатывает |
|||
|
||||
| shedon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 4 Всего: 11 |
да вроде должно работать, попробуй тогда так 3,14 в формате IEEE выглядит так 1078523331dec или 40 48 F5 C3 в hex, вот на выходе f будет равно 3.14
а что именно не работает, неправильно преобразовывает ? -------------------- Programming is like sex: One mistake and you have to support it your lifetime |
|||
|
||||
| Евгенний |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 9.11.2004 Репутация: нет Всего: нет |
C 3.14 все работает, а с 86,14(AE - 47 - 2C - 87 в десятеричной системе “174 71 44 135”), не получается( другой формат).
В QBasice есть функция CVSMBF она преобразует верно, но я не знаю как её сделать средствами С++ или Delphi. |
|||
|
||||
| shedon |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 4 Всего: 11 |
А это от того, что 86,14 = { ae 47 ac 42 }, т.е. 0x42ac47ae; и если написать след. код:
то как раз и получим в f=86.14 -------------------- Programming is like sex: One mistake and you have to support it your lifetime |
||||
|
|||||
| Adil' |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 26.8.2004 Где: Питер Репутация: 6 Всего: 15 |
shedon, а зачем ты memcpy и _asm используешь? можно же так :
-------------------- Удачи |
|||
|
||||
| shedon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 4 Всего: 11 |
Adil' , можно не спорю, просто как-то не подумал...
-------------------- Programming is like sex: One mistake and you have to support it your lifetime |
|||
|
||||
| Евгенний |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 9.11.2004 Репутация: нет Всего: нет |
Наверное, я неправильно объяснил нужно именно из AE - 47 - 2C – 87 получить 86,14. Т. е. имеем файл с числами 48 - E1 - 19 - 87 ; 85 - EB - 7B - 86 ; AE - 47 - 2C - 87 ; 52 - B8 - OA – 87 их нужно преобразовать в 76,94; 62,98; 86,14; 69,36 соответственно.
Из формата MS BINARY в IEE. Добавлено @ 05:53 А то что на счет _asm, то это только лучше (можно только на нем) |
|||
|
||||
| shedon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 4 Всего: 11 |
-------------------- Programming is like sex: One mistake and you have to support it your lifetime |
|||
|
||||
| Евгенний |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 9.11.2004 Репутация: нет Всего: нет |
Спасибо Shedon.
Почерпнул много нового. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |