我得到一串数据,想把它转为十进制显示,怎么转换?
'93 9B 75 99 9F 73 8F 9D 7D 7D 91'

解决方案 »

  1.   

    var
      m: Integer;
    begin
      m := StrToIntDef('$' + Edit1.Text, 0) + 169;
      Caption := '$' + IntToHex(m, 4);//十进制转换成十六进制
    function CnIntToHex(aInt: Integer): string;
    begin
    Result := IntToHex(Word(aInt), 4);
    end;//十六进制转换成十进制
    function CnHexToInt(aHex: string): integer;
    begin
    Result := SmallInt(StrToInt('$'+aHex));
    end;
      

  2.   

    var
      s : string;
    begin
      s :=strtoint('$'+'939B7599');
    end;
      

  3.   

    上面错了
    var
      i : integer;
    begin
      i :=strtoint('$'+'939B75');
    end;
      

  4.   

    Edit2.Text:=Format('%d',[StrtoInt('$'+Edit1.Text)]);
      

  5.   

    怎么好象串口接受过来的数据!不过这个转换不一定是StrtoInt,看具体传输协议而定!
      

  6.   

    i:Integer;
    sscanf("9B","%X",&i);不知道Delphi中是不是这样写。
      

  7.   

    function up(ch: char): byte;
    begin
      case ch of
        '0'..'9':
          begin
            up := ord(ch) - 48;
          end;
        'A'..'F':
          begin
            up := ord(ch) - 65 + 10;
          end;
        'a'..'f': up := ord(ch) - 97 + 10;
      else
        up := 0;
      end;
    end;function CTH(c1, c2: char): byte;
    begin
      CTH := up(c1) * 16 + up(c2);
    end;取出高低位字符调用CTH函数CTH(HiChar,LowChar)可得到
      

  8.   

    delphi里的十六进制是在数据前面加$
    所以 $01   表示十六进制的01   转化为十进制就是  1
         $0A   表示十六进制的0A   转化为十进制就是  10
    你得到的数据分别是$93 $9B $75 $99 $9F $73 $8F $9D $7D $7D $91
    程序可以这样写:
    var a:Integer;
     
    a := StrToInt('$' + '93');
    ....
    a := StrToInt('$' + '91');