作业帮 > 综合 > 作业

pascal a to b

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/01 20:59:45
pascal a to b
请补充一下题目.
再问: AtoB试题描述 给定一个a进制数c,将它变成b进制并输出。输入要求 读入三个整数,第一行是一个待转换的a进制数c(要用字符串读入),第二行是两个自然数 a和 b。输出要求 输出以如下形式: (answer)b输入样例 11012 10输出样例 (13)10
再答: 以下提供2~16进制之间任意转换的程序:const
 c='0123456789ABCDEF';
var
 r,t,m,n:longint;
 str:string;
procedure ntoshi(n:integer;str:string);
 var
  g,i,y:longint;
  f:array[1..1000] of integer;
 begin
  g:=length(str);
  for i:=1 to g do
   begin
    case str[i] of
     'A':f[i]:=10;
     'B':f[i]:=11;
     'C':f[i]:=12;
     'D':f[i]:=13;
     'E':f[i]:=14;
     'F':f[i]:=15;
     '0'..'9':f[i]:=ord(str[i])-ord('0');
    end;
   end;
  y:=1;
  t:=0;
  for i:=g-1 downto 1 do
   begin
    y:=y*n;
    t:=t+f[i]*y;
   end;
  t:=t+f[g];
 end;
procedure shitom(r,m:longint);
 var
  i,k:integer;
  b:array[0..1000] of longint;
 begin
  i:=0;
  repeat
   b[i]:=r mod m;
   r:=r div m;
   i:=i+1;
  until r=0;
  b[i]:=r;
  for k:=i-1 downto 0 do
   write(c[b[k]+1]);
 end;
begin
 readln(str);
 readln(n,m);
 ntoshi(n,str);
 r:=t;
 write('(');
 shitom(r,m);
 write(')');
 writeln(m);
 readln;
end.参考资料:http://wenwen.soso.com/z/q172916176.htm