• Domingo 15 de Diciembre de 2024, 11:58

Autor Tema:  Decimal A Binario  (Leído 6740 veces)

BajoMx

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Decimal A Binario
« en: Miércoles 19 de Mayo de 2004, 07:48 »
0
Bueno, tengo el codigo que presento a continuacion, es para generar numeros y me los da en decimal, y luego los cambio a binario, pero lo que quiero es que me los haga de la misma longitud, o no se como decirlo, pero por ejemplo:

No. Decimales:  
10
7
3

Me aparece:
1010
111
11

Yo quiero que me aparesca:
1010
0111
0011

es decir que me llene con ceros a la izq para que queden del mismo ancho por asi decirlo
mi codigo es:

#include<iostream.h>
#include<conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

void main(void)
   {
   int i,P,RM,Rm,EG,b,bin;
   clrscr();
   P=10;//Numero de Poblacion
   Rm=1;//Rango Menor del Intervalo
   RM=20;//Rango Mayor del Intervalo
   srand(time(NULL));
   cout<< "50 ELEMENTOS DE LA POBLACION\nRANGO 1 - 20\n\n";
   //Generacon de Poblacion Aleatoriamente
   for(i=0; i<P; i++)
   {
   cout<<"\n";
   (EG=rand()%(RM-Rm+1)+Rm);
   //Convercion de Decimal a Binarios
   for (b=EG; b!=0; b=b/2)
   {
   bin=b%2;
   cout<<(bin);
   }
   getch();
   }
}

espero me puedan ayudar

Kev

  • Miembro HIPER activo
  • ****
  • Mensajes: 654
    • Ver Perfil
Re: Decimal A Binario
« Respuesta #1 en: Miércoles 19 de Mayo de 2004, 16:57 »
0
Humm..., porque no intentas manejar el resultado, lo pasas a una cadena, ahi comparas cuentas los caracteres y si falta rellenas con ceros, por ultimo pasas la cadena y lo vuelves a convertir a valor numerico (si lo necesitas, porque puedes mostrar directamente la cadena)

Salu2
La teoria es asesinada tarde o temprano por la experiencia
Albert Einstein
Kev - 3 DCE
-----------------------------------------------------
Articulos:
Convertir texto a imagen en ASP.NET
Trabajando con el Global.asax

BajoMx

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Decimal A Binario
« Respuesta #2 en: Miércoles 19 de Mayo de 2004, 23:49 »
0
me podrias decir como hacer eso?
soy sumamente principiante en esto :s

gracias :)

turing

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Decimal A Binario
« Respuesta #3 en: Jueves 20 de Mayo de 2004, 01:30 »
0
Hola BajoMX:

Si lo que quieres es simplemente mostrar por pantalla los valores con longitud fija lo puedes hacer así:

for (int i = 3; i >= 0; i--)
if (bin & (1<<i))
cout << 1;
else
cout << 0;

cout << endl;

Esta expresión te mostrará cuatro dígitos (el valor de los 4 bits de menor peso).
Date cuenta de que si bin toma en algún momento el valor 16 (quinto bit, de peso 4) mostraría cuatro ceros ;) , por ejemplo.

BajoMx

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Decimal A Binario
« Respuesta #4 en: Viernes 21 de Mayo de 2004, 00:22 »
0
Ya arregle mi programa (genera numeros aleatoriamente, dentro de un rango, y los convierte a binario) y el codigo quedo de esta manera:

#include<iostream.h>
#include<conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

void main(void)
   {
   int i,j;       //Incrementos
   int P=5;       //Numero de Poblacion
   int Rm=1;      //Rango Menor del Intervalo
   int RM=10;     //Rango Mayor del Intervalo
   int EG;        //Elemento Generado Aleatoriamente
   int TamC=14;   //Tama¤o del Cromosom
   int res;       //Residuos
   int cromo[15]; //Vector para num. en binario
   clrscr();
   srand(time(NULL));
   cout<< "50 ELEMENTOS DE LA POBLACION\nRANGO 1.000 - 2.000\n\n";
   //Generacon de Poblacion Aleatoriamente
   for(i=0; i<P; i++)
     {
     cout<<"\n";
     (EG=rand()%(RM-Rm+1)+Rm);
   //Convercion de Decimal a Binarios
     for(j=0; j<TamC ;j++)
       {
       res=EG%2;
       cromo[TamC-(j+1)]=res;
       }
     cout<< cromo;
     getch();
     }
}


El problema esta que en la salida en ves de mostrarme 0s y 1s me da como resultado algo asi:

0x8f80ffcc
0x8f80ffcc
0x8f80ffcc
0x8f80ffcc
0x8f80ffcc


espero alguien me pueda ayuda :s
BajoMx!

chato_oros

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Decimal A Binario
« Respuesta #5 en: Lunes 24 de Mayo de 2004, 03:11 »
0
mira este programa para transformar de decimal a binario, ojala t de una idea d como arreglar tu problema, espero este bien.

 :comp:
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

BajoMx

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Decimal A Binario
« Respuesta #6 en: Lunes 24 de Mayo de 2004, 15:00 »
0
Gracias Chato_Oros ya con tu ayuda pude terminar mi codigo :)
 :kicking: