[Delphi, Object Pascal] внутреннее представление Real [CLOSED]

Slavaga

Кто-нить знает, как можно отобразить число типа Real в его внутреннем представлении (как оно храниться в памяти)?

gopnik1994

тебе в бинарном виде что ли надо?

Slavaga

ага

evgen5555

Как обычно, хранится в двоичном виде
Дробная часть в виде a1a2...an..., где "a1*2^(-1)+a2*2^(-2)+..." \
P.S. Тьфу, блин, все попутал, нах

Slavaga

Имеется ввиду, что есть переменная типа Real, надо вывести ее на экран в бинарном виде.

gopnik1994

Real, если мне не изменяет память, 8 байт, следовательно что-то в этом роде:

var
r: Real;
i: Int64 absolute r;
begin
r := pi;
WriteLn(IntToHex(i;
end;

evgen5555

Такие задачи, по-моему, только в советских задачниках по программированию ставят

Slavaga

Так оно и есть. Надо первокура из далекого института научить...

Slavaga

Вот это спасибо! =) Так и есть.

yolki

В Delphi Real = Double (8 байт)
В Турбо паскале Real - шесть байт (Real48 в дельфи но в паскале нет Int64
А в Delphi пользовать absolute дурной тон
но метод прокатывает

bleyman

Вообще гораздо правильней было
byte a[6];
real r absolute a;
Кажется так.

gopnik1994

> А в Delphi пользовать absolute дурной тон
а явное преобразование поинтеров круче?
это все unmanaged (как нынче модно говорить) код, так что absolute ничем не хуже, тем более что в исходниках дельфевых компонент оно используется..

gopnik1994

так правильней, но не быстрее
совсем правильно было бы так:
 
var
b: array of Byte;
r: Real;
begin
r := pi;
SetLength(b, SizeOf(r;
Move(@r, @b[0], SizeOf(r;
...
end;
Оставить комментарий
Имя или ник:
Комментарий: