Esta função levei uma hora de estudo para desenvolver, lendo o primeiro capítulo de Shokranian, Salahoddin. Criptografia Para Iniciantes (Brasília: Editora UnB, 2005)
o M-file pode ser baixado clicando aqui
%REPRESENTA Representação de um número decimal em uma base arbritrária % % [M,S,Z]=REPRESENTA(K,B) retorna a representação do decimal K na base B % colocando a representação numérica no vetor M, a representação em % uma string de soma potências em S e a mesma representação % desconsiderando zeros na string Z % % M=REPRESENTA(K) retorna a representação do decimal K na base binária % no vetor numérico M % if nargin==2 b=varargin{1}; else b=2; end s=sprintf('base: %d',b); disp(s); m=[]; while k>0 %k %disp('novo algoritmo'); m=[mod(k,b) m]; k=floor(k/b); %[k m] %pause end; s=''; z=''; for n=1:length(m); %na representação binária, podemos tanto mostrar... s=strcat(s, sprintf(' + %d*%d^%d',m(n),b,length(m)-n)); %... como omitir os zeros if(m(n)) if(m(n)==1) z=strcat(z, sprintf(' + %d^%d',b,length(m)-n)); else z=strcat(z, sprintf(' + %d*%d^%d',m(n),b,length(m)-n)); end end end s=regexprep(s,'^ \+ ',''); z=regexprep(z,'^ \+ ',''); disp(s); disp(z);
Cara, muito bom, estava procurando algo parecido para testar no matlab.
bom estou utilizando mais o excel no momento, satisfaz mais as minhas necessidades. Se serviu pra você, está ótimo.
Valeu mesmo!
Tava precisando demaisssss!