注册 登录
编程论坛 Delphi论坛

strtonum自定义一个函数进行进制转换 如 strtonum('1AA',16) 结果为426 下列函数实现有点小问题 求解!!!

runlwx 发布于 2013-11-20 10:44, 2407 次点击
自定义一个函数进行进制转换  如 strtonum('1AA',16)  结果为426   下列函数实现有点小问题 求解!!!

function strtonum(str:string;s:integer):real;
 var
 i ,j,k,dec:integer;
c,sign:char;
sum:real;
begin
 j:=strlen(pchar(str));
 sign:='*';
 sum:=0;
 for i := 1 to j do
   begin
     c:=str[i];
     if c='0' then
     k:=0
     else if c='1' then
     k:=2
      else if c='2' then
     k:=2
      else if c='3' then
     k:=3
      else if c='4' then
     k:=4
      else if c='5' then
     k:=5
      else if c='6' then
     k:=6
      else if c='7' then
     k:=7
      else if c='8' then
     k:=8
     else if c='9' then
     k:=9
      else if c='A' then
     k:=10
      else if c='B' then
     k:=11
      else if c='C' then
     k:=12
      else if c='D' then
     k:=13
      else if c='E' then
     k:=14
      else if c='F' then
     k:=15
     else
     begin
     sign:='/';
     dec:=1;
     k:=0;
     end;
     if sign='*' then
     sum:=sum*s+k
     else
     begin
     sum:=(sum+k)/dec;
     dec:=dec*haob;
 end;
  end;
strtonum:=sum;
end;
1 回复
#2
haiou3272013-11-20 14:24
dec:=dec*haob;//这是啥
Case of

[ 本帖最后由 haiou327 于 2013-11-20 14:32 编辑 ]
1