不是从1转换'1',而是转换成#1我用下面的代码不对:
var
  i: LongWord;
  c: String;
begin
  i := 12345678;
  c := PChar(@i);
end;

解决方案 »

  1.   

    好像直接有函数
    extendtostr
      

  2.   

    没发现有extendtostr这个函数呀
    再说即使有,也跟IntToStr(Int64)功能一样,不符合我的要求
      

  3.   

    给出一个答案,不过太麻烦了,不知有没有更简单一些的:
    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;
      

  4.   

    var
      i: LongWord;
      c: String;
      p: PChar;begin
      i := 12345678;
      c := IntToStr(i);
      c := c + #0;
      p := @c[1];
    end;
      

  5.   

    上面的,你的代码不符合要求。
    我的要求是:返回4字节(LongWord为4字节)的字符。
      

  6.   


        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];