最近编写一个通信协议的软件 其中需要把从软件界面取的整数转换成16进制数并将转换完的结果高低位分开分别放到动态数组的两个位中,这是我编写的一段代码
procedure TForm1.Button3Click(Sender: TObject);
var
ByteArray:array of byte;
buf: variant;
begin
buf:=VarArrayCreate([0,0], varByte);
SetLength(ByteArray, 3);//初始化ByteArray
ByteArray[0]:=$02;
ByteArray[1]:=??;
ByteArray[2]:=??;
buf:=ByteArray;
MSComm1.output:=buf;
sleep(500);
end;
我就是想将转化完的数的高位放到ByteArray[1]中低位放到ByteArray[2]中,从界面读取的数值是从1到256*256的范围内的
不知道我说的够不够 详细请高手指点
procedure TForm1.Button3Click(Sender: TObject);
var
ByteArray:array of byte;
buf: variant;
begin
buf:=VarArrayCreate([0,0], varByte);
SetLength(ByteArray, 3);//初始化ByteArray
ByteArray[0]:=$02;
ByteArray[1]:=??;
ByteArray[2]:=??;
buf:=ByteArray;
MSComm1.output:=buf;
sleep(500);
end;
我就是想将转化完的数的高位放到ByteArray[1]中低位放到ByteArray[2]中,从界面读取的数值是从1到256*256的范围内的
不知道我说的够不够 详细请高手指点
ByteArray[1]:= num div 256;
ByteArray[2]:= num mod 256;
ByteArray[2]:= num and $ff;