Форум: "Начинающим";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];
ВнизWORD > 2xBYTE Найти похожие ветки
← →
shart © (2006-08-21 23:51) [0]Есть число типа WORD, оно состоит из двух байтов, требуется узнать эти байты. Как?
С обратной задачей я справился {WORD:=(BYTE1 shl 8) or BYTE2;}, а вот с этой - не могу... :(
← →
Ketmar © (2006-08-21 23:55) [1]b0 := w and $FF;
b1 := (w shr 8) and $FF;
← →
guav © (2006-08-21 23:56) [2]Lo , Hi
← →
Джо © (2006-08-21 23:56) [3]Да хотя бы и так:
type
TWordRec = record
case Byte of
0: (Hi, Lo: Byte);
1: (Wrd: Word);
end;
var
W: TWordRec;
begin
W.Wrd := $FFAA;
ShowMessageFmt ("%x %x",[W.Lo, W.Hi]);
end;
← →
Пусик © (2006-08-21 23:57) [4]хм.
Hi()
Lo()
var
i: Integer;
BL,BH: Byte;
w: Word;
begin
w := 1025;
BL := Lo(w);
BH := Hi(w);
или
BL := w;
BH := w shr 8;
← →
Джо © (2006-08-21 23:57) [5]> [3] Джо © (21.08.06 23:56)
Пардон-с, Hi <-> Lo.
← →
Джо © (2006-08-21 23:58) [6]Еще варианты будут-с?
Что-то никтоabsolute
не изпользует. ;)
← →
shart © (2006-08-22 00:01) [7]Спасибо всем ! ;) Проблему с вашеё помощью (и с Hi,Lo) решил :)))
Тема закрыта
← →
Ketmar © (2006-08-22 00:02) [8]> [6] Джо © (21.08.06 23:58)
будут.var
b0, b1: Byte;
w: Word;
...
Move(w, b0, 1);
Move(PChar(@w)[1], b1, 1);
...
← →
guav © (2006-08-22 00:03) [9]> Еще варианты будут-с?
А как же ?
1. div 256 и mod 265
2.with TMemoryStream.Create do
try
writebuffer(w, 2);
seek(0, soFromBeginning)l
readbuffer(l, 1);
readbuffer(h, 1);
finally
Free;
end;
3. PByte(Succ(Integer(@W)))^ , PByte(@W)^
← →
Ketmar © (2006-08-22 00:04) [10]а давайте ещё через MMF напишем? и с сокетами по клиент-серверному типу!
← →
Ketmar © (2006-08-22 00:04) [11]а ещё можно событиями побитово собирать! вот.
← →
Пусик © (2006-08-22 00:08) [12]
var
wrd: array[0..1] of Byte;
w: word;
BL,BH: Byte;
begin
w := 1025;
Move(w,wrd[0],SizeOf(w));
BL := wrd[0];
BH := wrd[1];
← →
Пусик © (2006-08-22 00:11) [13]
var
BL,BH: Byte;
w: Word;
p: PByte;
begin
w := 1025;
p := @w;
BL := p^;
Inc(p);
BH := p^;
← →
guav © (2006-08-22 00:19) [14]давно я asm не использовал...
procedure SplitWordIntoTwoBytes(const W: Word; out L, H: Byte); assembler;
asm
MOV [EDX], AL
MOV [ECX], AH
end;
← →
Джо © (2006-08-22 00:20) [15]Тю. Пока ходил за пивом все и понаписали :)
← →
Германн © (2006-08-22 01:39) [16]Не а! Никто так и не применил упомянутый тобой в Джо © (21.08.06 23:58) [6] absolute.
P.S. Ходить за пивом после полуночи - весьма чревато! :-)
← →
Шпиён (2006-08-22 04:53) [17]
> Германн © (22.08.06 01:39) [16]
А зачем его применять, если он упомянут? Не интересно уже -)))
← →
Reindeer Moss Eater © (2006-08-22 09:16) [18]var
bp : PByte;
W : Word;
b1,b2 : byte;
begin
pb := @W;
b1 := pb^;
Inc(pb);
b2 := pb^;
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.039 c