Вверх ↑
Ответов: 8960
Рейтинг: 824
#1: 2008-08-31 13:34:26 ЛС | профиль | цитата
Проблема: есть файл, в котором без разделителей записаны 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
Кто сможет рассказать, какой бит что означает?
карма: 19

0