您的位置:首页 > 其它

任意进制(2-36内)与十进制间的转换

2013-09-29 11:12 239 查看
const
DD='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';

function DecimalToStr(n :Integer;jz :Byte):string;
var
m:Integer;
begin
Result :='';
while (n>jz) and (jz>1) do begin
m := n mod jz;
n := n div jz;
Result := DD[m+1] + Result;
end;
Result :=  DD[n+1] + Result;
end;

function StrToDecimal(s :string;jz:Byte):Integer;
//返回一个基础数B的E次方
function IntPower(b,e:Integer):Integer;
var
i :Integer;
begin
Result := 1;
for I := 1 to e do
Result := Result * b;
end;
var
I,L:Integer;
begin
Result :=0;
s := UpperCase(s);
L := Length (s);
for I := 1 to L do
Result := Result +(Pos(s[L-I+1],DD) - 1) * IntPower(jz,i - 1);
end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: