![]() |
|
|
![]()
|
|
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: нет Всего: 44 |
День добрый!
Сижу уже 20 минут не получается сконвертировать число из памяти в формат IEEE-754. В документации написано:
имеется 2 примера:
Заранее благодарен! Добавлено через 4 минуты и 46 секунд не совсем понятно чот дальше делать после: 1. выделил порядок: (value & 0xFF000000) >> 24 2. выдкелил знак числа (value & 0x00800000) 3. выделил мантису (value & 0x007F0000) вот есть уменя три состовляющих |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
value & 0x007FFFFF Добавлено через 2 минуты и 27 секунд Вот только я не понял - что во что конвертим... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: нет Всего: 44 |
ага 0x007FFFFF. ошибся. сегодня не соображаю. конвертим странный формат данных описанный выше в стандартный IEEE-754 Добавлено @ 12:52 PS те необходимо из 8A 51 40 00(650) получить 00 80 22 44(650) Это сообщение отредактировал(а) chaos - 23.9.2008, 12:55 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Мантисса = 514000 bin, Для перевода в целые надо домножить на 2^23, т.е. мантисса (после перевода в десятичку) = 5324800 / (2^23) Знак - положительный. Порядок - 8А-80 = 0А = 2^10 Итого число = 5324800 / (2^23) * (2^10) = 650 Добавлено через 2 минуты и 44 секунды А вот как соотносится 650 и 00 80 22 44 - я чтой-то не понимаю... Добавлено через 8 минут и 53 секунды Аналогично 85 65 72 B0 -> 25,362 Мантисса = 6572B0 bin, Для перевода в целые надо домножить на 2^23, т.е. мантисса (после перевода в десятичку) = 6648496 / (2^23) Знак - положительный. Порядок - 85-80 = 5 = 2^5 Итого число = 6648496 / (2^23) * (2^5) = 25,36199951171875, ну можно считать что 25,362 -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: нет Всего: 44 |
Akina, опа! все так просто.
а вот не понял только куда засунуть знак? если число отрицательное. Добавлено через 8 минут и 38 секунд а ,понял, если бит знаковый 1, то домнажаем на -1. прикольный алгоритм |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: нет Всего: 44 |
Akina, тока я не совсем понял алгоритм
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
а в чем собсно проблема?
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |