用pascal做十进制换二进制(用数组)(尽量简单)

来源:百度知道 编辑:UC知道 时间:2024/05/29 09:14:59
希望有解释

完整程序如下,在DELPHI下运行通过:

program test;{$apptype console}
var n:integer; s:string;
begin
write('n=?');readln(n);//输入正数n
s:='';//初始化结果为空
while n>0 do
begin
if n mod 2=0 then s:='0'+s else s:='1'+s;//在结果左边添加除2的余数
n:=n div 2;//除2
end;
writeln(s);//输出结果
end.

补充:
我这已经是最简单的了,偏要啥子数组,你们老师也太刁钻了,数组的程序如下,注释参照前面的:

program test;{$apptype console}
var i,n:integer; a:array [0..15] of integer;
begin
write('n=?');readln(n);
i:=0;
while n>0 do
begin
if n mod 2=0 then a[i]:=0 else a[i]:=1;
i:=i+1;
n:=n div 2;
end;
for i:=15 downto 0 do write(a[i]);
end.