//1.
procedure TForm1.FormCreate(Sender: TObject);
type
TByteArr = array [0..1] of Byte;
PByteArr = ^TByteArr;
var
Bytes: TBytes;
buf,buf2: TByteArr;
cmd,n_10: string;
Len: Integer;
c: char;
n_int:ushort;
w:Word; {Ushort : word}
begin
cmd:= 'F';
n_int:= 513; {0000 0010 0000 0001 }
c:= '1';
Bytes := TEncoding.ASCII.GetBytes(cmd); {将string类型中的字符转ASCII}
Len := Length(Bytes);
cmd:= IntToHex(n_int,2); {将int类型转出16进制字符串}
{1}
Move(n_int,buf,SizeOf(n_int)); {将int 转 Buff}
{2}
buf2:= PByteArr(@n_int)^;
end;
//2.
procedure TForm1.RzButton1Click(Sender: TObject);
var
buf: array[0..1] of byte;
bus: array[0..3] of byte;
si:SmallInt ;
i:Integer ;
w1,w2:Word; //two bytes represent a word, not an integer
begin {定义Byte,并写入数据}
buf[0] := $01;
buf[1] := $02; {0000 0010 0000 0001 }
bus[0] := $00;
bus[1] := $01;
bus[2] := $02;
bus[3] := $03;
{1}
Move(buf,si,SizeOf(SmallInt) );
ShowMessage(IntToStr(si));
{2}
WordRec(w1).Lo:= buf[0];
WordRec(w1).Hi:= buf[1];
w2:= PWORD(@buf)^;
{3}
Move(bus,i,SizeOf(Integer) );
ShowMessage(IntToStr(i));
end;
//3.
procedure TForm1.RzButton2Click(Sender: TObject);
var
a: array[0..7] of Byte;
d1, d2: Double;
begin
d1 := 123.456;
fillchar(a, 8, 0); {fillchar}
Move(d1, a, 8);
Move(a, d2, 8);
ShowMessage(FloatToStr(d2));
end;