Binario a decimal en C

rot
05 de Mayo del 2008
1 - Realizar una funcion que dado un numero en formato binario, de hasta 8 bits (ingresado como string) entregue su valor decimal.

Esta es mi idea pero no saca valores correctos

Tambien me pide hacer el prototipo de funcion, pero no se que es.

#include <stdio.h>
#include <stdlib.h>

char bits[9];
char valor_decimal=0;

int main()
{
printf("ingrese valor 8 bits de izq a der:n");
scanf("%s",bits);
binario_a_decimal();
printf("el valor de %s es %s", bits, valor_decimal);
getch();
return 0;
}

int binario_a_decimal()
{
char subresultado=0;
char i=0; /*posicionamiento en base al string*/
char multip=128; /*valor por el cual se va a multiplicar el string*/
while (bits[i]!= '')
{
subresultado = bits[i]* multip;
valor_decimal += subresultado;
i++;
multip = multip/2;
}
return 0;
}

PoWeRsgame
05 de Mayo del 2008
En otro post te he explicado como hacer el cambio de hexadecimal a decimal.
El cambio de otra base a decimal es primo hermano a este.
Te reto a intentar este tu solo.
Postea el código cuando lo tengas.
Suerte y un gran saludo.