Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pulse

Conveter char em int

Recommended Posts

Escreva uma função que dado uma string contendo uma sequência de 0 e 1 representando um número binário, retorne o número em base decimal. Para converter um número binário (na base 2, com algarismos 0 ou 1) em um número na base decimal (com algarismos de 0 a 9), se multiplica cada dígito binário por sua potência e depois soma-se. Cada potência é calculada como 2n, onde 2 é a base e n é o expoente. O expoente é indicado pela posição do dígito, sendo o mais a direita posição 0, o seguinte posição 1, etc.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int binario(char*, int);

int main ()
{
    char bin[10];

    printf("Digite um numero binario");
    gets(bin);

    printf("Numero convertido em decimal = %d", binario(bin, strlen(bin)));

    return 0;
}

int binario(char bin[], int ts)
{
    int dec=0, i, aux[ts];

    for(i=0; i<ts; i++)
    {
        aux[ts] = atoi(bin[i]);
        dec = dec + (aux*pow(2, ts-1-i));
    }

    return dec;
}

Entretanto o programa trava durante a execução, acredito que seja por conta do comando atoi, que pesquisando aqui encontrei que precisa receber um char* - string- e não apenas um caractere char. Há alguma maneira alternativa de realizar a conversão de char em int?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.