例如1530要转换成四位的16进制数05fb,像这样如果位数据不够,前面就补0,应该怎么做呢

解决方案 »

  1.   

    sHex := IntToHex(sDec, 4);
      

  2.   

    不过1530转成16进制应该是05fa而不是05fb吧?
      

  3.   

    Var
      Target:LongWord;Begin
      Target:=76778578;
    End.
      

  4.   

    var
      i : integer;
      S : String;
    begin
      i := 255;
      SetLength(S,SizeOf(i));
      CopyMemory(@S[1],@i,SizeOf(i));
      //S已经是值FF000000的四字节16进制的字符串了
    end;方法很多
    var
      i : integer;
      P : PChar;
    begin
      i := xxx;
      P := @i;
      把P当作4字节的缓冲区来取就是了。如果往P里存值,i的值跟着改变
    end;还有很多方法
    如定义
    Type
      TInt32Chars = array [0..3] of Char;
    不光是Integer,int64,Real都可以这么处理,只是长度不一样而已。
      

  5.   

    var
      i : integer;
      S : String;
    begin
      i := 255;
      SetLength(S,SizeOf(i));
      PInteger(@S[1])^ := i
      //S已经是值FF000000的四字节16进制的字符串了
    end;
    快些