Главная страница
    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.48 MB
Время: 0.04 c
2-1156276302
Паша123441435
2006-08-22 23:51
2006.09.10
Таблица


2-1156229307
UMU
2006-08-22 10:48
2006.09.10
DBGrid и DBLookUpComboBox


2-1155817627
Anonimus11
2006-08-17 16:27
2006.09.10
База данных


2-1156248554
IceBeerg
2006-08-22 16:09
2006.09.10
Получение снимка клиентской части окна чужого приложения


15-1156072441
BOA_KAA
2006-08-20 15:14
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский