Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.04;
Скачать: CL | DM;

Вниз

превод integer в массив byte   Найти похожие ветки 

 
{bas}   (2002-06-20 12:47) [0]

Привет всем!!!
Не подскажите как перевести integer, float и т.д. в массив byte


 
kull ©   (2002-06-20 12:51) [1]

Может так?

type
a: array[0..3] of byte;
i: Integer;
begin
Move(i,a[0],SizeOf(i));
end;


 
{bas}   (2002-06-20 13:04) [2]

>>kull
да спасибо, только наверное Move(i,a,SizeOf(i));


 
kull ©   (2002-06-20 13:12) [3]

Move(i,a,SizeOf(i));
Move(i,a[0],SizeOf(i));

Да и так и так можно.


 
PVOzerski ©   (2002-06-20 13:15) [4]

А также:
1)

var
a:array[0..3]of byte;
b:integer absolute a;

2)
type
tArray=array[0..3]of byte;
var
a:tArray;
b:integer;
...
a:=tArray(pointer(@b)^);

3)
var
ab:record
case integer of
0:(a:array[0..3]of byte);
1:(b:integer);
end;


 
{bas}   (2002-06-20 13:21) [5]

спасибо


 
MBo ©   (2002-06-20 13:23) [6]

4) как вариант 2

i:integer;
p:pbytearray;

p:=@i;
p[3]:=5;


 
kull ©   (2002-06-20 15:04) [7]

С absolute и указателями тоже вариант.
Один недостаток - разные переменные а область памяти одна.
Не подходит когда надо чтобы исходные данные остались неизменными.


 
PVOzerski ©   (2002-06-20 15:40) [8]

2kull © (20.06.02 15:04):
Так ведь игра в absolute, записи и указатели - для возможности использовать нормальный оператор присваивания := вместо move!


 
kull ©   (2002-06-20 17:15) [9]

Да да верно...


 
kull ©   (2002-06-20 17:29) [10]

Хотя с другой стороны - как присваивать массив через ":=" ?


 
Coalycat ©   (2002-06-20 17:38) [11]

Как комментарий к варианту MBo ©. Иногда приходится байты местами переставлять.


 
PVOzerski ©   (2002-06-20 18:27) [12]

2kull © (20.06.02 17:29):
Сейчас свой пример (2) преспокойно откомпилил в D3 и D6


 
kull ©   (2002-06-20 18:43) [13]


> Сейчас свой пример (2) преспокойно откомпилил в D3 и D6

Откомпилить то откомпилил но если присвоить: a[0] := 0,
то поменяется и содержимое b что не всегда желательно, т.е. присваивание это не простой перенос содержимого а манипуляции с одной и той же областью памяти.

есть разница integer или указатель на integer...



Страницы: 1 вся ветка

Текущий архив: 2002.07.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.008 c
6-9941
Sound
2002-04-22 23:03
2002.07.04
Отправка HTTP запроса


14-9962
panov
2002-05-24 14:38
2002.07.04
А не организовать ли встречу в Екатеринбурге?


1-9922
eviruswork
2002-06-17 19:02
2002.07.04
Пуск/Документы


6-9957
Aleksandr
2002-04-19 11:43
2002.07.04
Как обработать Socket Error #100054?


3-9760
fool
2002-06-13 11:29
2002.07.04
Глюк с полем типа text