function b=decbin(x,n)

% function b=decbin(x,n)
% Converte il numero reale x dalla base 10 alla base 2
% con n cifre dopo la virgola; l'output b e' una stringa.

beta=2;      % nuova base
a=abs(x);
m=fix(a);    % m e' la parte intera di abs(x)
a=a-m;       % a e' la parte frazionaria di abs(x)

% conversione della parte intera di abs(x)

b=[''];
while(m>0)
    c=m-beta*fix(m/beta);
    m=fix(m/beta);
    b=[num2str(c),b];
end;
if x==0 b='0'; end;
if x<0 b=['-',b]; end;   % aggiungere il segno di x
if n>0 b=[b,'.']; end;   % aggiungere il punto decimale

% calcolo delle prime n cifre della parte frazionaria

for i=1:n
   c=fix(beta*a);
   a=beta*a-c;
   b=[b,num2str(c)];
end

