求教做一函数将一个整数转换为BCD码
如12345转换为$012345谢谢

解决方案 »

  1.   

    其实是不会了。
    不过看你问了,帮你搜索了一下,得到:
    var i:integer;
        p:pByte;
        a:array[0..3] of byte;
    begin
      i:=1000;
      p:=@i;
      a[1]:=p^;
      inc(p,1);
      a[0]:=p^;
      showmessage(inttoHex(a[0],1));
      showmessage(inttoHex(a[1],1));
    end;
    你参考一下
      

  2.   

    原贴地址:
    http://community.csdn.net/Expert/topic/3492/3492471.xml?temp=.5220301
      

  3.   

    在给你找一贴
    http://community.csdn.net/Expert/topic/3546/3546235.xml?temp=3.979129E-02
      

  4.   

    var
        iTemp,iBCD:integer;begin
        iTemp:=12345;
        iBCD:=StrToInt('$'+IntToStr(iTemp));
      

  5.   

    谢谢大家
    我搞出来了
    function ConvertBCD(m,n:integer):integer;
    begin
      result := 0;
      result := result + ((m div 10) mod 10);
      result := result shl 4;
      result := result + (m mod 10);
      dec(n);
      if n=0 then exit;
      result := result shl 4;
      result := result + ((m div 1000) mod 10);
      result := result shl 4;
      result := result + ((m div 100) mod 10);
      dec(n);
      if n=0 then exit;
      result := result shl 4;
      result := result + ((m div 100000) mod 10);
      result := result shl 4;
      result := result + ((m div 10000) mod 10);
      dec(n);
      if n=0 then exit;
      result := result shl 4;
      result := result + ((m div 10000000) mod 10);
      result := result shl 4;
      result := result + ((m div 1000000) mod 10);
      
    end;我要的是如 :1234567  变为 $01234567 不是 $67452301