FREE PASCAL问题

来源:百度知道 编辑:UC知道 时间:2024/05/28 15:49:37
用FREE PSCAL编将10进制数变成2进制。我的思路是先读一个数b,然后设个变量K等于B DIV 2,然后while k<>0 do,让b mod 2,取余数,k:=k div 2.最后取得的余数怎样处理啊?放入数组在打印出来??到底怎么弄啊.

以下程序在DELPHI上调试通过,TURBO PASCAL应该没有问题:

{$apptype console}
PROGRAM exp;
var
i,b:integer;
a:array [0..15] of integer;
begin
for i:=0 to 15 do a[i]:=0;
readln(b);
i:=0;
while b>0 do begin a[i]:=b mod 2; b:=b div 2; i:=i+1; end;
i:=i-1;
while i>=0 do begin write(a[i]); i:=i-1; end;
end.

冇有必要
没有必要
毛有必要
我手写的没有测试,有问题请多多指教(百分百对,我们都背下来了-斧头帮-)
而且楼上有一个问题,他(她)只考虑了15位以内,如果爆了怎么办??
var reads:longint;
Jg,Zj:string;
begin
readln(reads);
repeat
str(reads mod 2,Zj);
reads:=reads div 2;
Jg:=Zj+Jg;
until reads=0;
writeln(Jg);
readln;
end.