16进制文本转成二进制分析,然后以10进制文本输出,请问如何实现阿

解决方案 »

  1.   

    :)
    上面的少了一个函数
    ShowMessage(IntToStr(StrToInt('$'+'ABCDEF')));
      

  2.   

    给你两个函数,分别是2进制转10进制和10进制转2进制
    象你说的文本是:0D 00
    转成二进制是:0000 0000 0000 1101 可以用inttobin(strtoint('$'+'000d'),16)
    根据二进制后五位转十进制为:13 可以用strtoint('$'+'000d')或者bintoint('0000000000001101')
    然后再8位转十进制:0  这个没有看明白,呵呵function bintoint(s:string):integer;
    var
      j,i:integer;
    begin
      result:=0;
      if s='' then
      begin
        result:=-1;
        exit;
      end;
      for i:=length(s) downto 1 do
      begin
        j:=1;
        j:=j shl (length(s)-i);
        if s[i]='1' then
          result:=result or j
        else if s[i]='0' then
          result:= result and (not j)
        else
        begin
          result:=-1;
          exit;
        end;
      end;
    end;function inttobin(i:integer;size:integer):string;
    var
     j: integer;
    begin
      result:='';
      for j:=size-1 downto 0 do
      begin
        if i and (1 shl j)<>0 then
          result:=result+'1'
        else
          result:=result+'0';
      end;
    end;
      

  3.   

    那就简单,你在用bintoint函数的时候,参数用copy('0000000000001101',1,8)就可以拉。
      

  4.   

    问一下
    文本是:0D 00
    转成二进制是:0000 0000 0000 1101
    是按照什么来的啊就是先把0D 00变成00 0D,然后就按顺序这样变成二进制阿
      

  5.   

    var
       Left13,Right5:Integer;
    begin
    Left13:=Round(StrToInt('$'+'000D')/32);//得到左二进制13位值。
    Right5:=StrToInt('$'+'000D') mod 32);//得到左二进制13位值。
    ……
      

  6.   

    var
       Left13,Right5:Integer;
    begin
    Left13:=Round(StrToInt('$'+'000D')/32);//得到左13位二进制值。
    Right5:=StrToInt('$'+'000D') mod 32);//得到右5位二进制值。
    ……555555555555555,太懒Copy的结果,变成了两个都是“得到左二进制13位值。”了。:-(
      

  7.   

    “然后以10进制文本输出”那就再改:var
       strLeft13,strRight5:String;
    ……
       strLeft13:=IntToStr(Round(StrToInt('$'+'000D')/32)); //得到左13位二进制值。
       strRight5:=IntToStr(StrToInt('$'+'000D') mod 32);    //得到右5位二进制值。
    );……
      

  8.   

    netwolfds(晓竹)你给的函数确实能实现,但是你能告诉我他的原理吗?
      

  9.   

    to brucely()'s 另外我想问一下那个“$”起得是什么作用阿?    作用是告诉Delphi 后面的是16进制数串。