|
|
|
VBS: 4 байта -> флоат
|
|||
|---|---|---|---|
|
#18+
Имеется массив из 4 байт (считанные из устройства). Как перевести эти 4 байта в одну переменную формата float (32-бит IEEE 754)? Задача осложняется тем, что используется VBS, а не VB... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2006, 07:52 |
|
||
|
VBS: 4 байта -> флоат
|
|||
|---|---|---|---|
|
#18+
тривиально: 1ый (я с начала) бит - знак (1,0) следующие 8 - экспонента, надо +127 еще прибавить далее матиса про приципу: пусть ai - итый ( с начала матисы, i от 1 бит) m = 1 + a1/2 +a2/4 + a3/8 + a4/2^4... итого : 2^(127 + exp)*m + знак, а лучше преобразовать по указателю вроде бы что-то такое cInt() или cFlt() точно такое с cByte работало, т.е. преобразование из строки в массив байтов, попоробуйте, авось... аффтопитезь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2006, 15:52 |
|
||
|
VBS: 4 байта -> флоат
|
|||
|---|---|---|---|
|
#18+
Kamsky, был бы это VB, можно было бы сделать простой LSet. А с VBS придётся действовать по описанию формата в стандарте: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. Для "упаковки" четырёх байт в 32-разрядное слово: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2006, 16:26 |
|
||
|
VBS: 4 байта -> флоат
|
|||
|---|---|---|---|
|
#18+
Более правильно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2006, 16:37 |
|
||
|
|

start [/forum/topic.php?fid=60&gotonew=1&tid=2164862]: |
0ms |
get settings: |
4ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
173ms |
get topic data: |
9ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 447ms |

| 0 / 0 |
