我知道在delphi中有函数strToInt,可以使用StrToInt('$'+Astring)将一个十六进制的字符串转化为整数型,但是这个整数型是十进制的,我怎样将一个十六进制的字符型转化为十六进制的数字型!比如说:文字“那”的unicode码是‘950B’我怎样将它变为数字960B?
  我很着急,请各位高手多多帮忙!问题解决可以再加分!

解决方案 »

  1.   

    s := '1234好人一生平安';
    t := '';
    for i:=1 to length(s) do t := t + IntToHex(Byte(s[i]),2);
    ShowMessage(t);
      

  2.   

    我都说过了:Inttohex函数的返回值是string型的,我要的是十六进制的数字型!
    有没有函数是返回十六进制的数字型?
      

  3.   

    Delphi中数值的表示都是十进制形式,
    不知道你要的这种表现形式有什么用处?
      

  4.   

    s := '1234好人一生平安';
    t := '';
    for i:=1 to length(s) do t := t + IntToHex(Byte(s[i]),2);
    v := StrToInt('$'+t);
      

  5.   

    strtoint(inttohex(1234,4))
    这样不就转换过来了吗???
    晕!
      

  6.   

    那就是
    $90B或0x90B数字在处理中分进制?????显示时才需要,如StrToInt('$'+IntToStr($FF))
      

  7.   

    我已经得到了‘950b’这个字符串,将它转为950b数字!
    fygzg请你试一试:strtoint(inttohex(1234,4))得到的是1234这个十六进制数吗?
    那你再试一试如果是abcd那?它转过来一定是用十进制表示的abcd!那就不是abcd这几个数了!
      

  8.   

    我请我楼主,什么叫十进制表示的abcd???
      

  9.   

    to xuecaixia:用StrToInt('$'+s)可以得到数值类型数值在电脑内部表示成10进制或16进制,是没有区别的,实际上都是2进制主要是你怎么用这个数值,用于计算,还是显示显示时,10进制或16进制,才有区别
      

  10.   

    是这样的,我需要将某一文字:比如“那”的unicode码取出比如说是“90b5”,我要通过一自定义的一个函数加密:encrypt(e:word):integer;那我就得把“90b5”传进函数中,如果“90b5”是字符型,那怎么传进函数中呢?不知大家是否能明白我的意思?
      

  11.   

    做不到,因为$90B5是个32位数,至少要Longword才行,用Word肯定不行答案还是那个StrToInt,好好体会上面的回答,本来就不存在你的问题,是你自己概念错误导致了问题
      

  12.   

    function DoEncrypt(s: String): Integer; //   s := '那';
    var
      v: Word;
    begin
      assert(Length(s)=2);
      v := Byte(s[1]) * $100 + Byte(s[2]);
      Result := encrypt(v);
    end;