[C con Clase] Dudas con número binario.

Facundo Curti facu.curti en gmail.com
Vie Jul 18 20:02:38 CEST 2014


El 18/07/2014 12:56, "Sebastián" <toledanosebastian en gmail.com> escribió:
>
> Buenos días a todos.
> Mis dudas son respecto a este programa:
>
> código:
> #include <stdio.h>
>
> int main() {
>
>     int nbin=0, ndec, digito=0, i;
>
>     printf("INGRESE UN N° BINARIO\n");
>     printf("N° bin: ");
>     scanf("%d", &nbin);
>     i = 1;
>     ndec = 0;
>     while (nbin != 0){
>         digito = nbin % 10;
>         if (digito == 1 || digito == 0){
>             ndec = ndec + (digito * i);
>             nbin = nbin / 10;
>             i = i * 2;
>         }
>         else {
>             printf("EL NÚMERO NO ES BINARIO\n");
>             return 0;
>         }
>     }
>         printf("\nEL DECIMAL CORRESPONDIENTE ES:\n");
>         printf("N° dec: %d", ndec);
> return 0;
> }
>
> El punto es que no consigo entender por qué el número centinela no puede
> ser (-1) cuando es el que uso normalmente (¿será que éste caso es
> anormal?). Fui probando números en el rango -2..2 y encontré que el
> único que no interfiere con el funcionamiento de programa es el 0 (¿por
> qué el 0?). La siguiente duda tiene que ver con la longitud máxima del
> número binario, solo puede traducir el equivalente a 1023 que es
> 1111111111 (10 dig.) ¿Si quisiera traducir el equivalente a 2000?
>
> El ejercicio es el N° 3.36 del manual Como Programar en c/c++ de Deitel
> y Deitel.
>
> Esto es todo, gracias de antemano!
>
>
>

Hola. Perdon si mi respuesta es poco precisa, estoy respondiendo desde el
celular.
¿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).
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.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20140718/647e2d86/attachment.html>


Más información sobre la lista de distribución Cconclase