欢迎光临
我们一直在努力

无限进制转换_delphi教程

建站超值云服务器,限时71元/月

 

无限进制转换
(*//


标题 : 无限进制转换


说明 : 使用于数学领域进制之间相互转换


设计 :Zswang


日期 :2002-01-24


支持 :wjhu111@21cn.com


//*)



///////Begin Source


const


  cScaleChar = 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ;



function IntPower(Base, Exponent: Integer): Integer; {  返回 Base 的 Exponent 次方  }


var


  I: Integer;


begin


  Result := 1;


  for I := 1 to Exponent do


    Result := Result * Base;


end; { IntPower }



function IntToDigit(mNumber: Integer; mScale: Byte;


  mLength: Integer = 0): string;


{  返回整数的进制表示 ;mScale 指定多少进制 ;mLength 指定长度 ,长度不足时向前补 0 }


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 := 0 + Result;


end; { IntToDigit }



function DigitToInt(mDigit: string; mScale: Byte): Integer;


{  返回进制表示转换成整数 ;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(StrToIntDef(Edit2.Text, 0), 16);


end;



procedure TForm1.Button2Click(Sender: TObject);


begin


  Edit2.Text := IntToStr(DigitToInt(Edit1.Text, 16));


end;


///////End Demo

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 无限进制转换_delphi教程
分享到: 更多 (0)