[C] trasformazione da stringa a binario

di il
3 risposte

[C] trasformazione da stringa a binario

Salve,
ho un problema e volevo sapere se c'era un modo semplice per risolverlo. se ho una stringa (o array di caratteri che dir si voglia) formata da 0 e 1, è possibile trasformare questa stringa nel suo valore float trattandola come un numero binario? in poche parole: esiste una funzione tipo atof che però tratta la stringa come se fosse un numero binario? mi spiego meglio con un esempio:

char string[4]="0101";

0101 se trattato come un binario varrebbe 5
se dovessi usare atof il valore restituito sarebbe il float 101
esiste quindi una funzione che prende il contenuto di una stringa, lo trasforma in un numero binario e lo converte in float?

char string[4]="0101";
float numero;
numero=funzione(string); //in modo tale che il float numero sia uguale a 5

grazie in anticipo

3 Risposte

  • Re: [C] trasformazione da stringa a binario

    Ciao, la funzione strtol ti permette di parsare una stringa e convertirla in un "long", specificando anche una base.

    Nel tuo esempio, puoi usare questa funzione per ottenere il numero 5 a partire dalla stringa "101".
    
    char* s = "101";
    long n = strtol(s, NULL, 2);
    printf("%ld\n", n); // stampa 5
    
  • Re: [C] trasformazione da stringa a binario

    Grazie mille Della
  • Re: [C] trasformazione da stringa a binario

    Giusto una nota: stai attento che
    
    char string[4]="0101";
    
    è sbagliato: ci vuole un'array lungo 5 per una stringa di 4 caratteri: l'ultimo carettere "invisibile" è il terminatore di stringa.
    
    char string[5]="0101";
    
    oppure
    
    char string[]="0101";
    
Devi accedere o registrarti per scrivere nel forum
3 risposte