ejecucion continua

rot
11 de Mayo del 2008
no puedo conseguir que vuelva a si mismo

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

#define base 2
char gbits[9];
int binadec();

int main()
{
unsigned char solucion=0;
char i=0,f=0;
while(f==0)
{
printf("ingrese valor 8 bits de izq a der:n");
scanf("%s", gbits);
f=1;
}
for(i=0;i<8;i++)
{
if(gbits[i]==0 || gbits[i]==1)
{

}
else
{
// printf("vuelva a ingresar los valores dentro del rangon");
f=0;
}
}
solucion = binadec();
printf("el valor de %s es %d n", gbits, solucion);
f=0;
getch();
return 0;
}

int binadec()
{
unsigned char resultado=0;
char i=0;
char z=0;
char n=0;
while(gbits[i]!='') /*inicializo para que arranque de atras para adelante*/
{
i++;
}
i--;
z=i;
while (i>=0 && i<9)
{
if (gbits[i]=='1') /*el ERROR!!! es un simbolo no un numero*/
{
resultado+=pow(base,(z-i)); /*mientras que i decrementa su valor pasando del 8 al 0, z aumenta su valor dando asi el exponente indicado*/
}
i--;
}
return resultado;

}