|
|
|
как прочитать 4 байта как float?
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Читаю бинарный файл. Очередной блок - 4 байта, которые нужно перевести во float. Fox v9 через ctobin(fread(hfile, 4), '4RS') отлично переводит в integer, а как во float - до меня не доходит. С примерами выглядит так. Hex: 30 A6 F7 40; int: 1089971760; нужный float: 7.739037. Как вариант - перевести во float не hex, а уже вот этот int. Подскажите плиз, в какую сторону вообще смотреть. Может, у фокса есть встроенная функция? Заранее спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2020, 06:42 |
|
||
|
как прочитать 4 байта как float?
|
|||
|---|---|---|---|
|
#18+
Встроенных функций нет. Проще всего написать на С такую функцию и вызывать ее из DLL. Можно заморочиться переводном из int. Структура float ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2020, 11:41 |
|
||
|
как прочитать 4 байта как float?
|
|||
|---|---|---|---|
|
#18+
Накидал по-быстрому, вроде работает Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Пользоваться так Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2020, 16:46 |
|
||
|
как прочитать 4 байта как float?
|
|||
|---|---|---|---|
|
#18+
Dima T, спасибо, работает! :) споткнулось на одном значении: F42576BF -> -0.9615166 т.е. должно быть вот так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2020, 13:07 |
|
||
|
как прочитать 4 байта как float?
|
|||
|---|---|---|---|
|
#18+
Забыл что 127 вычитается, правильно так Код: sql 1. т.к. для отрицательного bitrshift(lnI, 23) минимум 256, а 256-127=129 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2020, 13:58 |
|
||
|
как прочитать 4 байта как float?
|
|||
|---|---|---|---|
|
#18+
Я, конечно, понимаю, что это наглость с моей стороны, но все равно рискну :) Можно попросить такую же функцию, только в обратную сторону? float -> hex. Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2020, 12:57 |
|
||
|
как прочитать 4 байта как float?
|
|||
|---|---|---|---|
|
#18+
На фоксе писать долго. В аттаче dll, используй ее. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2020, 09:02 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=39913184&tid=1581585]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
156ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 269ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...