Проблема: есть файл, в котором без разделителей записаны 4-х байтные числа формата Single. Мне надо их прочитать, конечно в HiAsm-е, но HiAsm их не понимает, это же не Real! Но если знать назначение всех 32 битов в этом представлении числа, то элементарно перевести в любую форму можно.
Читаю справку:
"Переменные типа Single (числа с плавающей точкой обычной точности) сохраняются как 32-разрядные (4-байтовые) числа с плавающей точкой стандарта IEEE в диапазоне от -3,402823E38 до -1,401298E-45 для отрицательных значений и от 1,401298E-45 до 3,402823E38 для положительных значений."
Ой, да запросто - в VB создаю файл и заношу туда пару переменных в формате Single. Читаю по байтам (я заплакал):
53 46 55 54 55 48 51 49 69 43 48 56 (прочитанные байты)
5 . 7 6 7 0 3 1 E + 0 8 (их значение = 5,767031Е+08)
46 48 48 49 54 (прочитанные байты)
. 0 0 1 6 (их значение = 0,0016)
И где здесь обещанные 4 байта?
Вот число Single:
135 78 242 183
или:
10000111010011101111001010110111
Кто сможет рассказать, какой бит что означает?
Этот топик читают: Гость
Ответов: 8959
Рейтинг: 824
|
|||
карма: 19 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Леонид, проще добавить в datatofile
|
|||
карма: 27 |
|
Ответов: 8959
Рейтинг: 824
|
|||
Dilma, добавил, всё в порядке, читает и переводит (я сам-то и не догадался, а пошёл в гору
![]() |
|||
карма: 19 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Еще проще, помнить то, чего тебе уже давали
А это, если любопытен именно каждый битик: Редактировалось 1 раз(а), последний 2017-07-08 16:08:49 |
|||
карма: 9 |
| ||
файлы: 1 | single.png [19.1KB] [500] | ||
Голосовали: | Andrey |
Ответов: 8959
Рейтинг: 824
|
|||
Galkov, так я помнил о Вашей помощи, но не смог её найти здесь, а свой компьютор ещё с летнего отдыха не перевёз. За картиночку спасибо, ранее не встречал
![]() |
|||
карма: 19 |
|
5