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

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

Помогите записать DWORD ПЕРЕМЕНУЮ! [D6]


NikNet ©   (2005-08-20 16:30:00) 

Помогите записать DWORD ПЕРЕМЕНУЮ!

в общем надо сделать так
есть DWORD и есть также ещё три перемнных
в таком порядке:
BYTE
WORD
BYTE

вот DWORD надо записать в них с помощью SHL/SHR/AND/...


Defunct   (2005-08-20 21:17:00) [1]

KilkennyCat ©   (20.08.05 19:42) [8]
> По условию используются shl shr and

A := D and $ff;
B := D shl 8 shr 16;
C := D shr 24;


begin...end   (2005-08-20 19:49:00) [2]

> KilkennyCat ©   (20.08.05 19:42) [8]

Правильный ответ уже есть. См. условие в [2]. Именно на этот пост я и отвечал, предположив, что под функциями имелись в виду операторы.


KilkennyCat   (2005-08-20 19:42:00) [3]

правильного ответа еще нет. По условию используются shl shr and


Alexander Panov   (2005-08-20 19:33:00) [4]

Действительно.


begin...end   (2005-08-20 19:19:00) [5]

> Alexander Panov ©   (20.08.05 19:09) [4]
> Alexander Panov ©   (20.08.05 19:11) [5]

Правильный ответ уже был дан в [3].


Alexander Panov   (2005-08-20 19:11:00) [6]

Еще неправильно.
Вот так правильно:

var
A: Byte;
B: Word;
C: Byte;
D: DWORD;
begin
A := D;
B := (D shl 8) shr 16;
C := D shr 24
end.


Alexander Panov   (2005-08-20 19:09:00) [7]

var
 A: Byte;
 B: Word;
 C: Byte;
 D: DWORD;
begin
 A := D;
 B := (D shl 8) shr 8;
 C := D shr 24
end.


begin...end   (2005-08-20 18:12:00) [8]

> NikNet ©   (20.08.05 17:56) [2]

var
 A: Byte;
 B: Word;
 C: Byte;
 D: DWORD;
begin
 A := D;
 B := D shr 8;
 C := D shr 24
end.


NikNet   (2005-08-20 17:56:00) [9]

Нееее мне надо с помощью логических ф-ций :(


alpet   (2005-08-20 17:21:00) [10]


{$APPTYPE CONSOLE}
uses Windows, SysUtils;
var
  r: packed record
   case byte of
   0:(
     a: byte;
     b: word;
     c: byte);
   1:(dw: dword);
  end;

begin
r.dw := $11222233;
with r do Writeln (Format ('%x, %x, %x', [a, b, c]));
end;


Наверх

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