Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.47 MB
Время: 0.042 c
15-1155101339
Ega23
2006-08-09 09:28
2006.09.10
С Днём рождения! 9 августа


15-1155553934
Furyz
2006-08-14 15:12
2006.09.10
Интересно...


15-1155424712
Баер
2006-08-13 03:18
2006.09.10
Какой монитор(ы) купить на 600 долларов?


15-1155245302
Dbtgtt
2006-08-11 01:28
2006.09.10
Пожалуйста, по человечески объясните, что такое XOR!


2-1156140048
barakuda
2006-08-21 10:00
2006.09.10
Сложная выборка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский