unit funktionen;

interface
function binaerconvert(zahl: string) : integer;
function bc2(zahl : string) : integer;
function d2b(zahl : integer) : string;

implementation

function binaerconvert(zahl: string) : integer;
begin
  if (zahl<>'') then begin
    if (copy(zahl, length(zahl), 1)='1')
      then binaerconvert:=2*binaerconvert(copy(zahl,1,length(zahl)-1))+1
      else binaerconvert:=2*binaerconvert(copy(zahl,1,length(zahl)-1));
  end else binaerconvert:=0;
end; { binaerconvert }

function bc2(zahl : string) : integer;
var
  i : integer;
  res : integer;
begin
  res:=0;
  i:=0;
  while (i<length(zahl)) do begin
    if (copy(zahl,length(zahl)-i,1)='1')
      then res:=res+(1 shl i);
    i:=i+1;
  end;
  bc2:=res;
end; { bc2 }


function d2b(zahl : integer) : string;
begin
  case zahl of
    0 : d2b:='0';
    1 : d2b:='1';
    else
      if (zahl mod 2 = 0)
        then d2b:=d2b(zahl div 2)+'0'
        else d2b:=d2b((zahl-1) div 2)+'1';
  end;
end; { d2b }

end.


