Conversione numeri decimali in binario

di il
3 risposte

Conversione numeri decimali in binario

Salve, dovrei convertire un vettore contenente numeri decimali con segno in binario esiste in matlab una funzione che fa questo?
grazie

3 Risposte

  • Re: Conversione numeri decimali in binario

    Si, c'e' la funzione "dec2bin", ma non gestisce il segno. Esempio:
    
    >> dec2bin(10)
    
    ans =
    
    1010
    
  • Re: Conversione numeri decimali in binario

    Eh l'ho vista ma come dici tu non gestisce il segno quindi non mi va bene.
  • Re: Conversione numeri decimali in binario

    Si, ok. Dipende dalla convenzione che vuoi usare sul segno. Cioe' se ad esempio vuoi mettere solo un bit di segno davanti fai una funzione:
    
    function ret = binari(decimale)
    if decimale >= 0
         ret = strcat('0',dec2bin(decimale));
    else
         ret = strcat('1',dec2bin(-decimale));
    end
    
    e questo ti ritorna la stringa voluta col bit di segno davanti. Altrimentri se usi la rappresentazione in complemento a due c'è un modo molto compatto per farlo:
    sia Nbit il numero di bit con cui descrivi il numero, allora
    
    binario = dec2bin(mod(decimale,2^Nbit),Nbit)
    
    questo funziona perché se il numero decimale è negativo la funzione mod() ti calcola il suo complemento a 2^Nbit, cioè 2^Nbit+decimale, che è proprio la convenzione usata nel complemento a due.
Devi accedere o registrarti per scrivere nel forum
3 risposte