给出一个答案,不过太麻烦了,不知有没有更简单一些的: var i: LongWord; c: String; p: PChar; j: Integer; begin i := 12345678; p := PChar(@i); c := ''; for j := 0 to sizeof(i) - 1 do c := c + (p + j)^; //c就是要求的16进制字符串 end;
var i: LongWord; c: String; p: PChar;begin i := 12345678; c := IntToStr(i); c := c + #0; p := @c[1]; end;
上面的,你的代码不符合要求。 我的要求是:返回4字节(LongWord为4字节)的字符。
c := ''; for j := 0 to sizeof(i) - 1 do c := c + (p + j)^; //也可以改成: SetLength(c, Sizeof(i)); for j := 0 to Sizeof(i) - 1 do c[j + 1] := p[j];
extendtostr
再说即使有,也跟IntToStr(Int64)功能一样,不符合我的要求
var
i: LongWord;
c: String;
p: PChar;
j: Integer;
begin
i := 12345678;
p := PChar(@i);
c := '';
for j := 0 to sizeof(i) - 1 do
c := c + (p + j)^;
//c就是要求的16进制字符串
end;
i: LongWord;
c: String;
p: PChar;begin
i := 12345678;
c := IntToStr(i);
c := c + #0;
p := @c[1];
end;
我的要求是:返回4字节(LongWord为4字节)的字符。
c := '';
for j := 0 to sizeof(i) - 1 do
c := c + (p + j)^;
//也可以改成:
SetLength(c, Sizeof(i));
for j := 0 to Sizeof(i) - 1 do
c[j + 1] := p[j];