Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

Помогите с числами...   Найти похожие ветки 

 
BillyJeans ©   (2003-11-04 11:06) [0]

Есть некий файл, в котором хранятся суммы в непонятном для меня виде, а именно:
число -720.00 хранится как 010000000000008086С0
числи 6296.28 хранится как 0100E17A14AE4798B840
знаю только, что целая часть занимает 8 байт, дробная 2 байта.

Может у кого есть идеи на этот счет???


 
phan   (2003-11-04 11:14) [1]

Я так понимаю это Extended,
а откуда данные про 8 и 2 байта?


 
BillyJeans ©   (2003-11-04 11:22) [2]

Я так понимаю это Extended
а есть ли способы конвертации?

а откуда данные про 8 и 2 байта?
из описания структуры...


 
TUser ©   (2003-11-04 11:38) [3]

1. читать из file of type не катит? Тогда, наверное, так
2. var secondVar:extended absolute firstVar;
begin
// Прочитать в переменную firstVar строку из файла
// Тогда в SecondVar окажется правильное значение.

Но это, если ты точно знаешь типа своей переменной.


 
BillyJeans ©   (2003-11-04 11:48) [4]

Но это еще не факт, что число хранится как Extended...


 
Anatoly Podgoretsky ©   (2003-11-04 11:51) [5]

Так в описании что то сказано насчет формата. А Extended или нет весьма просто проверить, записав эти два числа в свой файл.


 
BillyJeans ©   (2003-11-04 11:54) [6]

В описании ничего нет, кроме того, что до запятой 8 чисел, после 2 числа


 
Amoeba   (2003-11-04 12:02) [7]

Маразм крепчает...


 
han_malign ©   (2003-11-04 12:19) [8]

>до запятой 8 чисел, после 2 числа
- дык, это договоренность об округлении десятичного представления числа, что не мешает бинарному представлению в виде Extended.


 
han_malign ©   (2003-11-04 12:40) [9]

короче первое слово, похоже, колличество элементов, далее восемь байт double:
program extnd;
{$APPTYPE CONSOLE}
uses Windows,
Utils in "..\Common\Utils.pas";
var ex: double;
const d1: packed array[0..9]of byte=($01,$00,$00,$00,$00,$00,$00,$80,$86,$C0);
d2: packed array[0..9]of byte=($01,$00,$E1,$7A,$14,$AE,$47,$98,$B8,$40);
begin
move(d1[2],ex,sizeof(ex));
Writeln(ex);
move(d2[2],ex,sizeof(ex));
Writeln(ex);
end.

-7.20000000000000E+0002
6.29628000000000E+0003


 
BillyJeans ©   (2003-11-04 17:03) [10]

han_malign © (04.11.03 12:40) [9]

Да, да! оно самое!!!



Страницы: 1 вся ветка

Текущий архив: 2003.11.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.054 c
1-41415
Ломброзо
2003-10-29 17:06
2003.11.13
ListBox и LB_ITEMATPOS


1-41165
operator
2003-11-02 19:13
2003.11.13
InsertComponent


1-41171
Mishenka
2003-11-02 17:51
2003.11.13
Как при создании исключения передать код ошибки?


6-41843
Zelikovsky Eugene
2003-09-11 12:46
2003.11.13
В Delphi 5 был такой компанент TNMHTTP?


4-42281
BorH
2003-09-11 03:04
2003.11.13
Создание ярлыка