一个小问题....(50分)

  • 主题发起人 边尘浪子
  • 开始时间

边尘浪子

Unregistered / Unconfirmed
GUEST, unregistred user!
buf:array [0..8] of byte;
buf[6]和buf[7] 里是两个16进制的值
两个拼起来组成一个integer 怎么弄?....
----------------------------------------------
本来是这样的:
buf:array [0..255] of byte;
socket.receive(buf,255);
得到 10个字节
例如: 05 01 00 01 7F 00 00 01 00 50
最后两个字节是PORT 我怎么弄出来给integer类型的变量?
( 0050 是 80 的意思 )
 
function BTW(b:array of byte): word;
var
dw, tdw: word;
begin
tdw := b[0];
dw := tdw shl 8;
tdw := b[1];
dw := dw + tdw;
result := dw;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
b: array[0..1]of byte;
w: word;
begin
b[0]:=$00;
b[1]:=$50;
w:=BTW(b); //integer(w),可得到integer型的,但其实word型的就可以了。
caption := inttostr(w);
end;
 
给你30分....

我的方法是
i:integer
i:=buf[6]*256+buf[7];
 
顶部