pascal语言,在turbo pascal7.0中调试通过。
{$N+E-}
function convert_b(a:extended;b:integer):string;
var
s,s1,s2:string;
m1:longint;
m2,n:extended;
i,j:longint;
ch:string[1];
function d2c(i:integer):char;
begin
case i of
0:d2c:='0';
1:d2c:='1';
2:d2c:='2';
3:d2c:='3';
4:d2c:='4';
5:d2c:='5';
6:d2c:='6';
7:d2c:='7';
8:d2c:='8';
9:d2c:='9';
10:d2c:='A';
11:d2c:='B';
12:d2c:='C';
13:d2c:='D';
14:d2c:='E';
15:d2c:='F';
else d2c:='Z';
end;
end;
begin
m1:=trunc(a);
m2:=a-m1;
s1:='';
s2:='';
while m1>0 do begin
i:=m1 div b;
j:=m1 mod b;
{str(j:0,ch);}
ch:=d2c(j);
s1:=ch+s1;
m1:=i;
end;
while (m2>0)and(length(s2)<24) do begin
n:=m2*b;
j:=trunc(n);
{str(j:0,ch);}
ch:=d2c(j);
s2:=s2+ch;
m2:=n-j;
end;
s:=s1+'.'+s2;
convert_b:=s;
end;
procedure trans(x:extended);
begin
writeln('(',x:0:16,')',10:0);
writeln(' =(',convert_b(x,2),')2');
writeln(' =(',convert_b(x,8),')8');
writeln(' =(',convert_b(x,16),')16');
end;
var
x:extended;
begin
{readln(x);}
x:=1234.5678;
trans(x);
end.
温馨提示:答案为网友推荐,仅供参考