Ciao a tutti,

ho un problema con questo programma:

/* Scrivere un programma per la conversione di un numero binario puro
* in intero decimale.
* Il programma chiede in input una stringa di caratteri
*/

Il problema è che deve essere data una stringa di caratteri e poi dopo deve essere convertita in un numeri intero da binario a decimale....

Io ho provato a fare questo:

codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

#define MAX 4

char carat[MAX],c;
int i=0,pos,bin;

main()
{
    pos=strlen(carat)-1;
    printf("Inserisci una stringa di numeri binari: ");
    while((c=getchar()) != '\n')
    {
        carat[i++]=c;
    }
    for(i=0;i<strlen(carat);i++)
    {
        if(carat[i]=='1')
            carat[i]=pow(2,pos)*1;
        else
            carat[i]=0;
        pos--;
    }
    for(i=0;i<strlen(carat);i++)
    {
        bin=carat[i]+bin;
    }
    printf("il numero decimale e': %d",bin);



}
ho provato con il getchar iniziale...

ho provato anche a dare una semplice stringa in questo modo senza getchar:

codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

#define MAX 4

char carat[MAX];
int i,pos,bin;

main()
{
    printf("Inserisci una stringa di numeri binari: ");
    scanf("%s",carat);
    for(i=0;i<strlen(carat);i++)
    {
        pos=strlen(carat);
        if(carat[i]==1)
            carat[i]=(2^pos)*1;
        else
            carat[i]=0;
        pos--;
    }
    for(i=0;i<strlen(carat);i++)
    {
        bin=carat[i]+bin;
    }
    printf("il numero decimale e': %d",bin);



}
Ma nulla.... non funziona nemmeno questo...

Cosa devo fare??


Grazie a tutti...