Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Как перевести 2 байта в слово?


Автор: baphonet 28.7.2005, 18:46
Как быстрее всего перевести 2 байта (старший и младший) в слово?
Код


var Hbyte, Lbyte : byte;
      wrd : word;
begin
   Hbyte := 123;
   Lbyte := 111;
// . . . 
   showmessage (inttostr(wrd));   // wrd=15855  (1111011 1101111)

Автор: Chrisstoff 28.7.2005, 19:18
Код

asm

....

end;


;))

Автор: baphonet 28.7.2005, 19:33
LOL
Почему бы и нет smile

Автор: Chrisstoff 28.7.2005, 19:43
Код

function my(Lb, Hb: Byte): Word; Assembler;
asm
  MOV AL,[Lb]
  MOV AH,[Hb]
end; 

Автор: baphonet 28.7.2005, 19:49
Chrisstoff, спасибо!

Автор: p0s0l 28.7.2005, 20:01
Про MakeWord забыли ? smile

Код
function MakeWord(A, B: Byte): Word;
begin
  Result := A or B shl 8;
end;

Автор: Chrisstoff 28.7.2005, 20:26
p0s0l
Готоф поспорить вариант с асмом будет работать быстрее ...
а требуется ...
Цитата
Как быстрее всего перевести 2 байта (старший и младший) в слово?

;)))

Автор: baphonet 28.7.2005, 21:00
Хм, слово "быстрее" можно трактовать по-разному smile : как "без лишнего гемороя" или как "с максимальной скоростью". Думаю, заюзаю асмовский вариант, но за MakeWord тоже спасибо

Автор: ManiaK 5.8.2005, 10:48
Chrisstoff Забавно, я всегда MAKEWORD пользовался smile

Автор: Chrisstoff 7.8.2005, 20:52
Цитата
Chrisstoff Забавно, я всегда MAKEWORD пользовался

... ну это я так ... после травмы в виде длительного принудительного траха с асемблером .... начал волей не волей кой чё писать на нём ... ))) тем более когда вопрос худо бедно касаеца мелкой рациональности ...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)