请问如果将十六进制的数转换成字符串
例如:$28-----'28'

解决方案 »

  1.   

    var
      s: String;
    begin
      s := IntToHex($28, 0);
      showmessage(s);
    end;
      

  2.   

    STRTOINT   ----->     INTTOHEX
    先转为数  再转为 十六进制
      

  3.   

    提供一下思路:
    1.$28  ----将字符串第位去掉----> 28    可行吧:)
    2.如下
    ......
    var
      rw :string;
    implementation{$R *.dfm}
    .....
    //转换
    function TForm1.hextostr(s1: string): string;
    var
    s2,s22,s3,ss:string;
    begin
      ss:= IntToStr(strtoint(s1) mod 16);
      if strtoint(s1) >=16 then
      begin
        s2:= IntToStr(strtoint(s1) div 16);
        s3:= IntToStr(strtoint(s1) mod 16);
        case strtoint(s3) of
          10: s3:='a';
          11: s3:='b';
          12: s3:='c';
          13: s3:='d';
          14: s3:='e';
          15: s3:='f';
        else
          s3:=s3;
        end;
        Result := s2;
        rw:= s3+rw;
        if strtoint(s2)<16 then
        begin
          case strtoint(s2) of
           10: s22:='a';
           11: s22:='b';
           12: s22:='c';
           13: s22:='d';
           14: s22:='e';
           15: s22:='f';
          end;
          rw:=s22+rw;
        end;
        hextostr(s2);
      end
      else
      begin
        if strtoint(ss)<16 then
        begin
          case strtoint(ss) of
           10: ss:='a';
           11: ss:='b';
           12: ss:='c';
           13: ss:='d';
           14: ss:='e';
           15: ss:='f';
          end;
        end;
        rw:= ss+rw;
      end;
      Result := rw;
    end;
    //测试结果,当类似$999或$9aa没问题,当类似$ab23这种以开头的结果有点问题,前面多一位^_^!,你自己改一下吧procedure TForm1.SpeedButton1Click(Sender: TObject);
    var
    begin
      Label1.Caption := hextostr(IntToStr(strtoint('$28')));
    end;
      

  4.   

    呵呵3.Label1.Caption := IntToHex($28, 0);