<p dir="ltr"><br>
El 18/07/2014 12:56, "Sebastián" <<a href="mailto:toledanosebastian@gmail.com">toledanosebastian@gmail.com</a>> escribió:<br>
><br>
> Buenos días a todos.<br>
> Mis dudas son respecto a este programa:<br>
><br>
> código:<br>
> #include <stdio.h><br>
><br>
> int main() {<br>
><br>
>     int nbin=0, ndec, digito=0, i;<br>
><br>
>     printf("INGRESE UN N° BINARIO\n");<br>
>     printf("N° bin: ");<br>
>     scanf("%d", &nbin);<br>
>     i = 1;<br>
>     ndec = 0;<br>
>     while (nbin != 0){<br>
>         digito = nbin % 10;<br>
>         if (digito == 1 || digito == 0){<br>
>             ndec = ndec + (digito * i);<br>
>             nbin = nbin / 10;<br>
>             i = i * 2;<br>
>         }<br>
>         else {<br>
>             printf("EL NÚMERO NO ES BINARIO\n");<br>
>             return 0;<br>
>         }<br>
>     }<br>
>         printf("\nEL DECIMAL CORRESPONDIENTE ES:\n");<br>
>         printf("N° dec: %d", ndec);<br>
> return 0;<br>
> }<br>
><br>
> El punto es que no consigo entender por qué el número centinela no puede<br>
> ser (-1) cuando es el que uso normalmente (¿será que éste caso es<br>
> anormal?). Fui probando números en el rango -2..2 y encontré que el<br>
> único que no interfiere con el funcionamiento de programa es el 0 (¿por<br>
> qué el 0?). La siguiente duda tiene que ver con la longitud máxima del<br>
> número binario, solo puede traducir el equivalente a 1023 que es<br>
> 1111111111 (10 dig.) ¿Si quisiera traducir el equivalente a 2000?<br>
><br>
> El ejercicio es el N° 3.36 del manual Como Programar en c/c++ de Deitel<br>
> y Deitel.<br>
><br>
> Esto es todo, gracias de antemano!<br>
><br>
><br>
></p>
<p dir="ltr">Hola. Perdon si mi respuesta es poco precisa, estoy respondiendo desde el celular.<br>
¿No te convendría hacerlo pidiendo un string? De esa forma no se te limita a un tamaño de 1024. Para convertir de carácter a decimal, mira la función atoi (si mi memoria no falla ese es el nombre).<br>
En cuanto a la lógica del programa, me parece que esta mal, pero deja que llegó a casa, lo revisó mejor y te respondo de forma más detallada. Se me complica escribir desde el cel.</p>