主题:question
lawliet
[专家分:10] 发布于 2007-11-27 14:21:00
哪一位能讲一下这道题
写一函数,输入一个十六进制的数,把它转换成十进制
谢谢
回复列表 (共1个回复)
沙发
onebyone [专家分:0] 发布于 2008-03-01 22:22:00
program jinzhi(input,output);
var
n,m,shijin,l,i:longint;
x,kk:char;
z:array[1..10000] of longint;
num: string;
function f(n:longint;x:string):longint;
var
x1:char;
i:longint;
z:array[1..10000] of longint;
begin
for i:= 1 to length(x) do
begin
x1:=x[i];
case x1 of
'1','2','3','4','5','6','7','8','9','0': z[i]:=ord(x1)-48 ;
'A','B','C','D','E':z[i]:=ord(x1)-55;
end;
end;
f:=0;
for i:=1 to length(x) do
f:=n*f+z[i] ;
end;
procedure change(n:longint;l:longint);
var
k:longint;
kk:char;
begin
k:= n mod l;
if k>=10 then
begin
kk:=chr(k+55);
n:=n div l ;
if n<>0
then change(n,l);
write(kk);
end
else begin
n:=n div l;
if n<>0 then change(n,l);
write(k);
end;
end;
begin
assign(input,'change.in');
assign(output,'change.out');
reset(input);
rewrite(output);
readln(n);
readln(num);
readln(m);
change( f(n,num),m);
close(input);
close(output);
end.
这个是进制转化题的解,适用于所有进制转化.输入是(输入的数的进制,数,和要转化成的进制),我相信你若理解这个程序,以后一般不怕进制转化的问题.重要在理解.祝你快理解.
我来回复