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;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;
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;
本文深入探讨了Delphi中不同类型数据之间的转换方法,包括字符、整数、字节、小数等数据类型的相互转换,以及如何使用Move、PByteArr、WordRec等函数进行高效操作。通过具体的代码示例,读者可以学习到如何在Delphi编程中灵活运用这些转换技巧。
430

被折叠的 条评论
为什么被折叠?



