请问一下,我怎么样写一个程序把10进制数(或二进制数)转换为35进制的数?

解决方案 »

  1.   

    ( a mod 35) 就是你的低位
    a = a div 35 就是高位不停循环 直到 a div 35 =0
      

  2.   

    根据规则写程序请问大于9的数用什么表示?
    abcd?下面是思路对35 mod,得到的结果再被35 mod,直到结束,为止
    比如:
    xxxx mod 35 = a
    (xxxx mod 35) mod 35 = b
    ……则结果为 ……ba
      

  3.   

    更正
    >>(xxxx mod 35) mod 35 = b(xxxx div 35) mod 35 = b
      

  4.   

    可不可以用26个字母加9个数字来表示呀,因为这样刚好35个数,也就是说10就是A,15就是F
    16就是G.......35就是Z.这样来表示怎么样来实现呢?
      

  5.   

    按惯例应使用10个数字加25个字母 0  1  2  3  4  5  6  7  8  9  A  .... Y 10就是A,15就是F .... 35 应用 10
      

  6.   

    (*//
    标题:无限进制转换
    说明:使用于数学领域进制之间相互转换
    设计:Zswang
    日期:2002-01-24
    支持:[email protected]
    //*)///////Begin Source
    const
      cScaleChar = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';function IntPower(Base, Exponent: Integer): Int64; { 返回Base的Exponent次方 }
    var
      I: Integer;
    begin
      Result := 1;
      for I := 1 to Exponent do
        Result := Result * Base;
    end; { IntPower }function IntToDigit(mNumber: Int64; mScale: Byte;
      mLength: Integer = 0): string;
    { 返回整数的进制表示;mScale指定多少进制;mLength指定长度,长度不足时向前补0 }
    var
      I, J: Int64;
      K: Integer;
    begin
      Result := '';
      I := mNumber;
      while (I >= mScale) and (mScale > 1) do begin
        J := I mod mScale;
        I := I div mScale;
        Result := cScaleChar[J + 1] + Result;
      end;
      Result := cScaleChar[I + 1] + Result;
      for K := 1 to mLength - Length(Result) do Result := '0' + Result;
    end; { IntToDigit }function DigitToInt(mDigit: string; mScale: Byte): Int64;
    { 返回进制表示转换成整数;mScale指定多少进制 }
    var
      I: Byte;
      L: Integer;
    begin
      Result := 0;
      mDigit := UpperCase(mDigit);
      L := Length(mDigit);
      for I := 1 to L do
        Result := Result + (Pos(mDigit[L - I + 1], cScaleChar) - 1) *
          IntPower(mScale, I - 1);
    end; { DigitToInt }
    ///////End Source///////Begin Demo
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Edit1.Text := IntToDigit(StrToInt64Def(Edit2.Text, 0), 35);
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      Edit2.Text := IntToStr(DigitToInt(Edit1.Text, 35));
    end;
    ///////End Demo注意,最大数值为十进制的“9223372036854775807”(三十五进制的“2PIJMIKEXRXP7”)~~
      

  7.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
    r,m,y:integer;
    begin
     y:=strtoint(edit1.text);
     m:=y mod 35;
     r:=(y div 35)*10+m;
     edit2.Text:=inttostr(r);
    end;
      

  8.   

    lili1先生的这种方法好像有点问题呀,按照这种方法,十进制的10,35进制也是10,这没有错,可是当十进制的35,那么35进制的结果也是10,这样就容易混乱