unit Digit;interfaceuses SysUtils; //无限进制转换 //使用于数学领域进制之间相互转换 //返回整数的进制表示 ;mScale 指定多少进制 ;mLength 指定长度 ,长度不足时向前补 cScaleChar[1] //function IntToDigit(mNumber: Integer; mScale: Byte;mLength: Integer = 0): string; //返回进制表示转换成整数 ;mScale 指定多少进制 //function DigitToInt(mDigit: string; mScale: Byte): Integer;const cScaleChar = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';function IntPower(Base, Exponent: Integer): Integer;function IntToDigit(mNumber: Integer; mScale: Byte; mLength: Integer = 0): string;function DigitToInt(mDigit: string; mScale: Byte): Integer;implementationfunction IntPower(Base, Exponent: Integer): Integer;var I: Integer;begin Result := 1; for I := 1 to Exponent do Result := Result * Base;end;function IntToDigit(mNumber: Integer; mScale: Byte; mLength: Integer = 0): string;var I, J: 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 I := 1 to mLength - Length(Result) do Result := cScaleChar[1] + Result;end;function DigitToInt(mDigit: string; mScale: Byte): Integer;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;end.