Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как преобразовать array[1..8] of byte в double


Страницы:   1 2

Ji ©   (2005-02-18 01:09:00) 

тогда у меня к вам вопрос такой:
как преобразовать array[1..8] of byte в double?


Ji   (2005-02-18 12:05:00) [21]

> ASMiD   (18.02.05 11:58) [9]

Это из серии d := double(a) ?

:)


Digitman   (2005-02-18 12:05:00) [22]


> ASMiD   (18.02.05 11:58) [9]
> Эх пятница что-ли?


угу .. она самая .. уж такую хрень несешь, что и за пятницу стыдно) ... ты хоть бы вник в суть вопроса что ли ..


ASMiD   (2005-02-18 11:58:00) [23]

Эх пятница что-ли?

var
 ab:array[1..8] of byte;
 ad:array[1..8] of double;
 k1:integer;
begin
 for k1:=1 to 8 do ad[k1]:=ab[k1];
end;


Ji   (2005-02-18 10:48:00) [24]

> begin...end ©

А какая разница? Если что, то у меня это может выглядеть и как array[0..100] of byte. из которого [50..58] нужно преобразовать в double.
Я думаю в случае чего можно создать еще один массив [0..7] , передать в него нужные байты и с ним уже работать. Так что все ответы в кассу.


Digitman   (2005-02-18 08:57:00) [25]


> Ji ©   (18.02.05 01:09)  


преобразоватьили привести к типу? разные же разности .. в первом случае операция копирования требуется , во втором - нет


Kerk   (2005-02-18 08:06:00) [26]

begin...end ©   (18.02.05 8:00) [5]

блин, точно.. ну тогда совсем по-другому надо.. сейчас подумаю..


begin...end   (2005-02-18 08:00:00) [27]

> Просто Джо ©   (18.02.05 1:59) [1]
> Kerk ©   (18.02.05 7:21) [4]

Нифига. Автор просил преобразовать массив array[1..8] of byte, а вы что подсовываете? Какой-то array [0..7] of byte.

:-)


Kerk   (2005-02-18 07:21:00) [28]

еще вариант :)

var
 Arr: array [0..7] of byte;
 D: Double;
begin
 D := PDouble(@Arr[0])^;
end;


Просто Джо   (2005-02-18 02:09:00) [29]


> [2] XProger ©   (18.02.05 02:04)


Эх, взял и испортил такую тему...
;)


XProger   (2005-02-18 02:04:00) [30]

d := double(a);


Просто Джо   (2005-02-18 01:59:00) [31]

Способ №1

type
 TArr8 = array [0..7] of byte;
var
 Arr: TArr8;
 D: Double;
begin
 Move (Arr,D,SizeOf(Double));
end;

------------------------------------

------------------------------------
Способ №2
type
 TArr8 = array [0..7] of byte;
var
 Arr: TArr8;
 D: Double absolute Arr;

------------------------------------

------------------------------------
Способ №3
type
 TTwins = record
  case Byte of
   0: (ArrayValue: array [0..7] of byte);
   1: (DoubleValue: Double)
 end;
var
 Twins: TTwins;

------------------------------------

Лично я предпочитаю №1 и №3. Но это дело вкуса.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо