Главная страница
    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.039 c
1-41610
Pavels
2003-10-26 17:02
2003.11.13
подскажите форумы линки посвященные графике под Дельфи


1-41228
ИМХО
2003-11-01 02:06
2003.11.13
Строковая функция


6-41845
Dennisius
2003-09-12 10:40
2003.11.13
ErrorCode (ClientSocket)


3-40958
GSV_
2003-10-17 08:31
2003.11.13
Специалистам по Oacle. Вопрос про snapshot


14-41980
Brahman
2003-10-17 16:20
2003.11.13
Насчет 17-й строки





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский