|
|
|
как прочитать 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:11 |
|
||
|
как прочитать 4 байта как float?
|
|||
|---|---|---|---|
|
#18+
Встроенных функций нет. Проще всего написать на С такую функцию и вызывать ее из DLL. Можно заморочиться переводном из int. Структура float ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2020, 11:41:36 |
|
||
|
как прочитать 4 байта как float?
|
|||
|---|---|---|---|
|
#18+
Накидал по-быстрому, вроде работает Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Пользоваться так Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2020, 16:46:28 |
|
||
|
как прочитать 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:34 |
|
||
|
как прочитать 4 байта как float?
|
|||
|---|---|---|---|
|
#18+
Забыл что 127 вычитается, правильно так Код: sql 1. т.к. для отрицательного bitrshift(lnI, 23) минимум 256, а 256-127=129 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2020, 13:58:11 |
|
||
|
как прочитать 4 байта как float?
|
|||
|---|---|---|---|
|
#18+
Я, конечно, понимаю, что это наглость с моей стороны, но все равно рискну :) Можно попросить такую же функцию, только в обратную сторону? float -> hex. Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2020, 12:57:52 |
|
||
|
как прочитать 4 байта как float?
|
|||
|---|---|---|---|
|
#18+
На фоксе писать долго. В аттаче dll, используй ее. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2020, 09:02:09 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=5&tid=1581585]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
57ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 189ms |
| total: | 305ms |

| 0 / 0 |
