Ver Mensaje Individual
  #4 (permalink)  
Antiguo 27/02/2014, 10:28
Avatar de leosansan
leosansan
 
Fecha de Ingreso: mayo-2012
Ubicación: GRAN CANARIA
Mensajes: 194
Antigüedad: 12 años
Puntos: 49
Respuesta: Dudas sobre binario a decimal

Cita:
Iniciado por nup_ Ver Mensaje
No uses un número para guardar la representación en binario.
Usa una cadena de texto.

nup_
Creo que este es el usuario que sólo ha visto los if, while, for y poco más. No creo que halla llegado a los arrays.

Aunque tampoco son necesarios.

La idea de él es plausible, ir obteniendo los restos del número en binario y multiplicándolos por las respectivas potencias de dos.

Un ejemplo sería el código que dejo a continuación, donde uso unsigned long long por si quiere meter números binarios hasta 60-65 cifras en lugar de las ocho que él dice. Para este último caso bastaría usar int en lugar de unsigned long long:

Código C++:
Ver original
  1. #include <stdio.h>
  2.  
  3. int main(void){
  4.   int i,digitos=1;
  5.   unsigned long long int numero,N,num=0;
  6.   printf("Introduzca un numero binario de ocho digitos maximo:\n");
  7.   do{
  8.     scanf("%llu",&numero);
  9.     for (i=10;(numero/i)>0;i*=10){
  10.       digitos++;
  11.     }
  12.     if (digitos>=9){
  13.       puts("He dicho ocho digitos maximo");
  14.       printf("Introduzca un numero binario de ocho digitos maximo:\n");
  15.     }
  16.   }while (digitos>=9);
  17.   num=0,N=numero;
  18.   for (i=1;N>0;i*=2){
  19.     num+=i*(N%10);
  20.     N/=10;
  21.   }
  22.   printf("\n%llu\n",num);
  23.   return 0;
  24. }

¡¡¡Saluditos!!!


Última edición por leosansan; 27/02/2014 a las 13:12