进制转换(jinzhi.pas,jinzhi.c,jinzhi.cpp) pascal

来源:百度知道 编辑:UC知道 时间:2024/09/20 07:19:10
问题描述
给出一个 P 进制整数 N,求 N 的 Q 进制表示。期中 0<= N <= 32767 , 2 <= P <= 16, 2 <= Q <= 16。大于 9 的数字用 A、B、C、D、E、F 表示。
输入:
P Q
N(用 P 进制表示的)
输出:
N(用 Q 进制表示的)
样例
输入:
5 16
421
输出:
6F

var
st:string;
x,i,j,p,q:integer;
s:longint;
a:array[1..16] of integer;
begin
readln(p,q);
readln(st);
s:=0;
for i:=length(st) downto 1 do
begin
if (st[i]>='0') and (st[i]<='9') then
x:=ord(st[i])-48
else
x:=ord(st[i])-55;
s:=s*p+x;
end;
i:=0;
while s>0 do
begin
i:=i+1;
a[i]:=s mod q;
s:=s div q;
end;
for j:=i downto 1 do
if a[j]>9 then write(chr(a[j]+55)) else write(a[j]);
writeln;
end.

var i,m,n,v,t:longint;ch:char;num:string;
begin
assign(input,'change.in');reset(input);
assign(output,'change.out');rewrite(output);
readln(n);readln(num);readln(m);v:=0;
for i:=1 to length(num) do begin
case num[i] of
'0': t:=0;
'1': t:=1;