Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.04 c
1-41404
denis24
2003-10-29 17:22
2003.11.13
bool beep


1-41302
Ломброзо
2003-10-31 11:04
2003.11.13
Можно ли убрать 3D border у DateTimePicker


4-42261
Bes
2003-09-11 01:06
2003.11.13
Подвисание...


1-41632
Matrex
2003-10-25 21:29
2003.11.13
RichEdit


4-42227
DNT
2003-09-01 18:25
2003.11.13
Помогите получить пути к открытым файлам.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский