![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
4 байтные числа равны дробным соответственно:
3C23D70A = 0.01 3CA3D70A = 0.02 402CCCCD = 2.69 и т.д. Так же числа могут быть отрицательными, тогда они начинаются с 8 или 9 это мне извесно точно. Программа ArtMoney перекодирывает их именно так, но вот вопрос как получить эти результаты в ДЕЛФИ. С целыми числами понятно, а вот с дробными да ещё и отрицательными . Может кто подскажет, а то я в тупике. |
|
#2
|
||||
|
||||
|
Код:
var
r: real;
i: integer;
begin
// присваиваем переменой значение, т.е. заносим в ячейку памяти значение
i := $402CCCCD;
asm
// загружаем с этой ячейки в FPU регист наше значение как число с плавающей точкой
fld i
// сохраняем с этого регистра с последующем его освобождением наше уже значение в виде числа с плавающей точкой
fstp r
end;
ShowMessage(FloatToStr(r));
end;FPU регистры существуют для работы с числами с плавающей точкой размерностью до 80 бит (10 байт). С их помощью можно выполнять кроме простых арифметических действий такие как считать тригонометрические функции, логарифмы и прочее. Последний раз редактировалось BoRoV, 28.12.2010 в 17:12. |
|
#3
|
|||
|
|||
|
Да, гениальное всё просто, мне учится и учится
Большое спасибо!! |
|
#4
|
||||
|
||||
|
2 Borov
А можно код откоментировать? А то мне интересно как это работает. |
|
#5
|
||||
|
||||
|
Спасибо
Все понятно. |