| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > Спец формат -> IEEE-754 |
| Автор: chaos 23.9.2008, 12:24 | ||
| День добрый! Сижу уже 20 минут не получается сконвертировать число из памяти в формат IEEE-754. В документации написано:
имеется 2 примера:
Заранее благодарен! Добавлено через 4 минуты и 46 секунд не совсем понятно чот дальше делать после: 1. выделил порядок: (value & 0xFF000000) >> 24 2. выдкелил знак числа (value & 0x00800000) 3. выделил мантису (value & 0x007F0000) вот есть уменя три состовляющих |
| Автор: Akina 23.9.2008, 12:36 |
value & 0x007FFFFF Добавлено через 2 минуты и 27 секунд Вот только я не понял - что во что конвертим... |
| Автор: chaos 23.9.2008, 12:42 | ||
ага 0x007FFFFF. ошибся. сегодня не соображаю. конвертим странный формат данных описанный выше в стандартный IEEE-754 Добавлено @ 12:52 PS те необходимо из 8A 51 40 00(650) получить 00 80 22 44(650) |
| Автор: Akina 23.9.2008, 13:47 |
Мантисса = 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 23.9.2008, 14:35 |
| Akina, опа! все так просто. а вот не понял только куда засунуть знак? если число отрицательное. Добавлено через 8 минут и 38 секунд а ,понял, если бит знаковый 1, то домнажаем на -1. прикольный алгоритм |
| Автор: chaos 23.9.2008, 15:07 |
| Akina, тока я не совсем понял алгоритм |
| Автор: Akina 23.9.2008, 17:02 |
| а в чем собсно проблема? |