秦皇岛宏兴钢铁官网:PASCAL编程一题

来源:百度文库 编辑:中科新闻网 时间:2024/05/07 08:28:32
输入一个数a,求它的二进制、八进制、十六进制。(建议十六进制用case语句)

var a,i,wei:longint;
ans1,ans2:array[1..100]of integer;
ans3:array[1..100]of char;
begin
read(a);
if a=0 then for i:=1 to 3 do writeln('0')
else
begin
for i:=1 to 100 do
begin
ans1[i]:=0; {2进制}
ans2[i]:=0; {8进制}
ans3[i]:='0'; {16进制}
end;
i:=a;
wei:=0;
while i<>0 do
begin
inc(wei);
ans1[wei]:=i mod 2;
i:=i div 2;
end;
write('To 2:');
for i:=wei downto 1 do
write(ans1[i]);
writeln;
i:=a;
wei:=0;
while i<>0 do
begin
inc(wei);
ans2[wei]:=i mod 8;
i:=i div 8;
end;
write('To 8:');
for i:=wei downto 1 do
write(ans2[i]);
writeln;
i:=a;
wei:=0;
while i<>0 do
begin
inc(wei);
case i mod 16 of
0,1,2,3,4,5,6,7,8,9:ans3[wei]:=chr((i mod 16)+ord('0'));
10,11,12,13,14,15:ans3[wei]:=chr((i mod 16)+ord('A')-10);
end;
i:=i div 16;
end;
write('To 16:');
for i:=wei downto 1 do
write(ans3[i]);
writeln;
end;
end.
你的建议我接收了。