PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : تبدیل مبناها



Y@SiN
10-07-2009, 12:11 AM
Type
TBaseRange=2..32;
Const
sDigits='0123456789ABCDEFGHIJKLMNOPQRSTUV';
Function IntToAnyBase(num:int64;Base:TBaseRange):string;
var
tmp1,tmp3:int64;
str:string;
begin
str:='';
tmp3:=num;
repeat
tmp1:=tmp3 mod Base;
tmp3:=tmp3 div Base;
str:=copy(sDigits,tmp1+1,1)+str;
until not(tmp3<>0) ;
Result:=str;
end;

Function AnyBaseToInt(num:string;Base:TBaseRange):int64;
var
sum:int64;i:longint;
token:string;
begin
sum:=0;
for i:=1 to length(num) do begin
token:=uppercase(num[i]);
sum:=Base*sum+(pos(token,sDigits)-1);
end;
result:=sum;
end;