lunes, 22 de noviembre de 2010

Convertir de binario a decimal o de decimal a binario(Extra)

Hola compañero hace poco publique un comentario en una entra que hablaba sobre los codigos decimales y binarios,y de como se convierte uno en otro.
Bueno el punto es que yo le sugerí a mi compañero que realizara un programa que transformara un numero decimal a binario o viceversa.
Y pues yo hice un programa en C que calcula lo ya mencionado.
Recordemos que para convertir un numero decimal a binario o viceversa hay que utilizar las siguientes formulas:
De decimal a binario:
Solo tenemos que ir dividiendo nuestro numero entre 2 como el siguiente ejemplo:

 
100|0
 50|0
 25|1   --> 1, 25-1=24 y seguimos dividiendo por 2
 12|0
  6|0
  3|1
  1|1   -->  (100)10 = (1100100)2 
 
De binario a decimal:
Solo hay que ir elevando el exponete del numero binario ejemplo:
 
0010 esto es igual a decir 2 en decimal vamos a comprobarlo 

(0)2^3+(0)2^2+(1)2^1(0)2^0= 0+0+2+0=2decimal
 
Codificación de Programa en C:
 
 
Bueno pues en si esta es la codificación del programa para convertir de decimal a binario solo hay que dividir entre dos y decirle a nuestro programa que solo imprima el residuo y es asi como obtenemos el numero binario.
Y para convertir de binario a decimal si batalle un poco mas ya que, tuve que poner un while para que fuera repitiendo las serie de 1 y 0 a calcular y ya con esto imprimir el numero decimal.


9 comentarios:

  1. Muy interesante oscar, te comento yo tambien se me vino la idea de ralizar un programa similar, en tu caso, una conversion de binario a decimal y viceversa. Otro punto interesante que puede ayudar a comprender a muchas personas es la aplicacion de lo que en ANSI C se ve como "modulo" y "residuo", muchas personas podran saber que es lo que se trata, pero no saben exactamente donde pueden aplicar esos conceptos. Este es un ejemplo claro donde puedes aplicar este concepto. Gracias por la entrada ;)

    ResponderEliminar
  2. No lo puedes subir en texto por favor? Es que lo nevesito para una tares, ayudemonos entre necesitados, gracias :)

    ResponderEliminar
  3. Pero el binario de 50 es 110010! Y ahi sale 100110

    ResponderEliminar
    Respuestas
    1. Lo que pasa es que este programa tiene varios errores, empezando en que hay que mostrar los restos del último al primero

      Eliminar
  4. Aqui hay otra manera de hacerlo :

    #include
    #include
    using namespace std;
    int main()
    {
    int B,R,Y,labcod1,labcod2,labcod3,labcod4,labcod5,labcod6,labcod7,labcod8;
    cin>>B;
    labcod1 = ((B/1)%10);
    labcod2 = ((B/10)%10);
    labcod3 = ((B/100)%10);
    labcod4 = ((B/1000)%10);
    labcod5 = ((B/10000)%10);
    labcod6 = ((B/100000)%10);
    labcod7 = ((B/1000000)%10);
    labcod8 = ((B/10000000)%10);

    R=(labcod1+labcod2+labcod3+labcod4+labcod5+labcod6+labcod7+labcod8)%2;
    labcod1=labcod1*1;
    labcod2=labcod2*2;
    labcod3=labcod3*4;
    labcod4=labcod4*8;
    labcod5=labcod5*16;
    labcod6=labcod6*32;
    labcod7=labcod7*64;
    labcod8=labcod8*128;
    Y=labcod1+labcod2+labcod3+labcod4+labcod5+labcod6+labcod7+labcod8;
    R=Y-R;
    cout<<R<<endl;
    return 0;
    }

    ResponderEliminar
  5. Esto es código C o qué código es? En caso de no ser, cuál sería la respuesta en código C.? Gracias anticipadas por la respuesta.

    ResponderEliminar
  6. Por favor me pueden decir que librerías llevan al principio? Después de #include ? Gracias anticipadas por su información.

    ResponderEliminar