% conversione di un numero naturale nelle basi 2, 3, 8, 16 cifre = ['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f']; N=input('Dammi un valore intero: '); if N < 0 fprintf('%i e` un numero negativo\n', N); else for base = [ 2 , 3 , 8 , 16 ] Ncopia = N ; % Per non rovinare l'originale NinBase = '' ; % Diventera` la rappresentazione di N in altra base while Ncopia ~= 0 % qui inizia la conversione in base 'base' NinBase = [ cifre(rem( Ncopia, base ) + 1) , NinBase ]; % N.B.: rem designa l'operazione `Remainder after division`, % cioe` il calcolo del resto della divisione fra numeri interi Ncopia = floor( Ncopia / base ); end if size( NinBase ) == 0 NinBase = '0'; end fprintf('Ecco il numero %i espresso in base %i: ', N, base), disp(NinBase) end end