当前位置:主页>Delphi教程>文章内容
无限进制转换
来源: 作者: 发布时间:2007-04-29  
 

无限进制转换
(*//

标题 : 无限进制转换

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

设计 :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


 
上一篇:Delphi中延时   下一篇:为什么要选择TCAD来开发矢量应用软件
 
  相关文章
·Delphi中延时
·为什么要选择TCAD来开发矢量应用软件
·使用Topmost窗口,并且不会产生闪烁的
·动态建表(示例)
·Tchart分析报告
·抓屏技巧二三例
·如何通过COM接口得到实现该接口的对象
·项目迭代开发手记--文件分割存储用例的
·如何接受消息,中断正在处理的过程
·两个字符串分割函数引出的奇怪问题
·项目迭代开发手记--文件分割存储用例的
·Delphi中使用动态SQL的几个问题
 
【关闭窗口】
推荐本站资源
最新文章