PROGRAM BINAER_UMWANDELN;
USES CRT;

VAR
    zahl:WORD;
    binaer:STRING[32];

PROCEDURE umwandeln(dezi:WORD);
VAR
   i:BYTE;

BEGIN
    binaer[0]:=#16;
    FOR i := 16 DOWNTO 1 DO
     BEGIN
      IF (dezi mod 2) = 0 THEN
        binaer[i]:= '0';
        IF (dezi mod 2) = 1 THEN
           binaer[i]:= '1';
      dezi:=dezi DIV 2;
     END;
END;

BEGIN
CLRSCR;
binaer:='';
  GOTOXY(2,1);
  WRITE('EINGABEBREICH 0 bis 65535.');
  REPEAT
  GOTOXY(2,2);
  WRITE('Eingabe (beenden mit 0) : ');
  CLREOL;                       { L”scht Zeile ab der Cursorposition, }
                                { mit aktueller Hintergrundfarbe,     }
                                { Cursorpos bleibt unver„ndert        }
{$I-} READLN(zahl); {$I+}
  IF IOresult <> 0 THEN
  BEGIN
   CLRSCR;
   EXIT;
  END;
   GOTOXY(2,3);
    WRITE('Dezimalzahl: ',zahl);
     umwandeln(zahl);
   GOTOXY(2,4);
  WRITE('Bin„rwert:   ',binaer);
  binaer:='';
  UNTIL zahl = 0;
CLRSCR;
END.
