余3BCD码是怎么回事?是否可用ABCDEF来表示?(0~9当然能表示了^^).有没办法用Delphi来操作它

解决方案 »

  1.   

    余3码  余3码也是一种BCD码,但它是无权码,但由于每一个码对应的8421BCD码之间相差3,故称为余3码,其一般使用较少,故正须作一般性了解,具体的编码如下表。常见BCD编码表十进制数 8421BCD码 2421BCD码 余3码 
    0        0000      0000      0011 
    1        0001      0001      0100 
    2        0010      0010      0101 
    3        0011      0011      0110 
    4        0100      0100      0111 
    5        0101      1011      1000 
    6        0110      1100      1001 
    7        0111      1101      1010 
    8        1000      1110      1011 
    9        1001      1111      1100 
    10     0001,0000 0001,0000 0100,0011 
      

  2.   

    Function IntToM3Bcd(IntNum:integer):string;
    const
      M3BCD: array [0..9] of string =
        ('0011', '0100', '0101', '0110', '0111', '1000', '1001', '1010',
        '1011', '1100');
    var
      i: integer;
      strNum:string;
    begin
      strNum:=inttostr(IntNum);
      for i := Length(strNum) downto 1 do
        Result :=  M3BCD[StrToInt('$' + strNum[i])] + Result;
    end;
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      showmessage(IntToM3Bcd(14))
    end;