Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2013, 07:05   #1
Skail
Пользователь
 
Регистрация: 07.04.2011
Сообщений: 18
По умолчанию Перевести большой массив байт в тип дробное число

Привет всем. Всегда переводил массив байт в тип Double, так были не большие числа. Но столкнулся с проблемой при переводе числа больше чем Double.
Вот пример:
Код:
var
 d8: array [0..7] of byte;
 D:Double;
begin
   d8[0]:=StrToInt('$01');
   d8[1]:=StrToInt('$02');
   d8[2]:=StrToInt('$03');
   d8[3]:=StrToInt('$04');
   d8[4]:=StrToInt('$05');
   d8[5]:=StrToInt('$06');

   D:=Double(d8);
end;
А как быть если у меня массив байт не [0..7] а размером [0..15]
Skail вне форума Ответить с цитированием
Старый 25.01.2013, 07:08   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

перевести в два дробных числа?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.01.2013, 07:11   #3
Skail
Пользователь
 
Регистрация: 07.04.2011
Сообщений: 18
По умолчанию

Амммм это как? если у меня число равное 009A9999999999E93F и это значение необходимо перевести
Skail вне форума Ответить с цитированием
Старый 25.01.2013, 07:16   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

определитесь какой это тип данных.
макс тип это Extended 10 байт.
если это какой то неизвестный делфи тип то всю работу с ним придется вести ручками.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.01.2013, 07:17   #5
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

максимальный вещественный - Extended 10байт
зачем больше? или длинной математикой занялись, но там обычно целые?
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 26.01.2013, 14:28   #6
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Вообще-то программа, опубликованная в посте 1, ничего никуда не переводит, а лишь создает фиксированное число, которое можно было просто записать константой без всякого программного кода.
Эквивалент:
Код:
const B : array[0..1]of dword = ($04030201; $00000605);
 D = double absolute B;
Для того, чтобы получить дельный совет, неплохо было бы сперва сформулировать, что на самом деле нужно.
s-andriano вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевести 4-х байтное число из 16-го числа в дробное десятичное Skail Общие вопросы Delphi 9 05.10.2012 11:02
Перевести из 16-го числа в дробное десятичное Skail Общие вопросы Delphi 3 29.04.2012 09:31
Дан массив из 9 байт расматривая его как массив 72 бит подсчитать число нулей в этом массиве. noob asm Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 16.04.2012 19:04
Найти наибольшее число. Массив байт. (assembler) Wasisualy Помощь студентам 1 27.12.2011 13:48
Перевести отрицатьльное дробное число в двоичную систему Иллидан Помощь студентам 0 14.11.2010 13:04