主题:紧急,一道关于进制转换的 问题
帮帮忙,大侠们。
下面这个程序是将N进制的数转换为十进制的数,我遇上些问题。
PROGRAM ZJL;
const m=20;
VAR str1:string;
str2:char;
n,i,l,y,t:integer;
x:longint;
a:array[1..m] of integer;
BEGIN
writeln('input number x,n:');
readln(x,n);
str(x,str1);
l:=length(str1);
for i:=1 to l do
begin
str2:=str1[i];
[color=FF0000] a[i]:=ord(str2)-ord('0');[/color]什么意思?
end;
y:=1; t:=a[i];
for i:=l-1 downto 1 do
begin
if a[i]>n then
begin
write('error');
exit;
end;
y:=y*n;
t:=t+a[i]*y;
end;
writeln(x,' ','[',n,']','>>','[',10,']',' ',t);
END.
哪里是“按权展开”的具体表达?
下面这个程序是将N进制的数转换为十进制的数,我遇上些问题。
PROGRAM ZJL;
const m=20;
VAR str1:string;
str2:char;
n,i,l,y,t:integer;
x:longint;
a:array[1..m] of integer;
BEGIN
writeln('input number x,n:');
readln(x,n);
str(x,str1);
l:=length(str1);
for i:=1 to l do
begin
str2:=str1[i];
[color=FF0000] a[i]:=ord(str2)-ord('0');[/color]什么意思?
end;
y:=1; t:=a[i];
for i:=l-1 downto 1 do
begin
if a[i]>n then
begin
write('error');
exit;
end;
y:=y*n;
t:=t+a[i]*y;
end;
writeln(x,' ','[',n,']','>>','[',10,']',' ',t);
END.
哪里是“按权展开”的具体表达?