[Back to NUMBERS SWAG index] [Back to Main SWAG index] [Original]
{ True so here is another version of the process that returns a String : }
Program Dec2BinRec;
Type
Str32 = String[32];
Function Dec2BinStr(aNumber : LongInt) : Str32;
Function Bit(aBit : Byte) : Char;
(* return either Char '0' or Char '1' *)
begin
if aBit = 0 then
Bit := '0'
else
Bit := '1'
end;
begin
If aNumber = 0 Then
Dec2BinStr := '' (* done With recursion ?*)
else (* convert high bits + last bit *)
Dec2BinStr := Dec2BinStr(ANumber Div 2) + Bit(aNumber Mod 2);
end;
Var
L : LongInt;
begin
Repeat
Readln (L);
If L <> 0 then
Writeln(Dec2BinStr(L));
Until (L = 0)
end.
[Back to NUMBERS SWAG index] [Back to Main SWAG index] [Original]