Duda C++

Pues tengo que hacer un programa que consiste en lo siguiente (es una tonteria de programa pero bueno) en C++ (con el Turbo C++ de Borland):

El programa nos pide un numero decimal, lo introducimos, y este pasa automaticamente a hexadecimal... luego separo los dos bits que ma salen en mayor y menor peso... por ejemplo, 123(dec) pasa a ser 7b(hex), bit de menor peso b y de mayor peso 7... bueno hasta hay todo correcto, eso lo tengo hecho sin ningun problema... pero el problema lo tengo en el siguiente paso... transformar el codigo hexadecimal en binario... ufff hay si que me lio un poco, por que no se como salir... tengo la pista de que se hace con un bucle for... pero famos ni zorra de como poner las funciones... mira mejor pongo lo que tengo hecho asi se ve mas claro creo....

#include
#include
#include void principio();
void salir();unsigned int dato,datoh,datoh2,comp;
unsigned char bin;main()
{
clrscr();
principio();
clrscr();
return 0;
}void salir()
{
clrscr();
gotoxy(30,9);cout<<"Hasta la proxima";
getch();
}void principio()
{
clrscr();
gotoxy(12,1);cout<<"OPERADORES A NIVEL DE BIT";
gotoxy(12,2);cout<<"=========================";
gotoxy(12,5);cout<<"Introducir un valor decimal:";cin>>dato;
gotoxy(12,6);cout<<"El valor introducido es... "< gotoxy(12,8);cout<<"El valor introducido en Hexadecimal es "<>4;
gotoxy(12,10);cout<<"El valor de mayor peso es "< datoh=dato&datoh2;
gotoxy(12,11);cout<<"El valor de menor peso es "<for (int cuen=0; cuen>=1; cuen=cuen+1) /*PARA PASAR A BIN*/
{
bin=dato%2;
gotoxy(12,13); cout< } getch();
salir();
}

Bueno perdon por el tochaco, pero es que lo tengo que presentar en clase y no se por donde salir y tengo un mareo ya de ver tantas letras q..qu...que [lapota] .

Muchas gracias de ante mano.

Edito: Jow [snif] nadie lo sabe???
yo te ayudo

para pasar de decimal a hexadecimal dices que lo entiendes ;D

seria asi seguir este patron:


decimal - > binario -> hexadecimal

13 -> 1101 -> D



pues el caso complemtario seria asi


hexadecimal -> binario -> decimal

A -> 1010 -> 10




haz una tabla de verdad para los valores hexadecimales (de 0 a F) y dale equivalencias


y siendo mas rapido busca el codigo del programa por el google hay a cientos....
Hombre, para pasar un numero de hexadecimal a binario...pasa el numero que tengas en hexadecimal a binario con la tabla de equivalencias que te dice bolo (1-9, A=10, B=11..., F=15), y luego hazte una funcion que te haga las divisiones entre 2 para sacar los binarios...no?

En fin la cosa en pseudocódigo que me sacaba de ocurrir sería algo asin:

si (numero>9) entonces
pasaradec() //te pasa el numero a decimal teniendo en cuenta que es una letra y eso...

//el numero en binario sería concatenar los restos de las divisiones

for (i=0; i<4; i++)
{
numerobin = numerobin^(numero mod 2);
numero = numero / 2;
}
numerobin = numerobin ^ numero;

//^ es el operador para concatenar cadenas, que no macuerdo como era el de c++

La cosa es ir dividiendo numero (tiene que ser un int) entre 2 como si pasaras de decimal a binario e irlo almacenando en numerobin (de tipo string o char[]) 3 veces e ir concatenandole el resto de las divisiones enteras...el ultimo digito (el de menor peso) lo obtienes concatenando el ultimo resultado de la division...

Amos, algo asin...espero haber ayudao

Edito: basicamente es + o - lo mismo que tienes tu hecho ahi...no mabia fijao bien en el código, sorry [ayay]
Bueno, muchas gracias a los dos jeje, ya lo tengo hecho... muchiiiiiiiiiiiiiiiiiiiisimas gracias... jeje [ginyo] XD
dale las gracias a jebiman
que se ha currado el codigo, yo estaba en plan vaguito XD , solo te dije un ejemplo simbolico
"jamonazo2000" escribió:Para proximas dudas http://www.lawebdelprogramador.com


Eso no es un poco de spam [burla3] ?

...

solo pregunto...
Bueno... pues gracias a jibiman y a todos por la ayuda jeje. Ahora si que podre terminar el programita...

Gracias.
7 respuestas