|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Дробные числа в HEX формате
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
А можно код откоментировать? А то мне интересно как это работает. Хорошо написанная программа не требует документации ICQ 9-184-668. |
#5
|
||||
|
||||
Спасибо Все понятно.
Хорошо написанная программа не требует документации ICQ 9-184-668. |