C/Visual C - problemilla con programacion

   
Vista:

problemilla con programacion

Publicado por juanjo (1 intervención) el 23/01/2008 19:42:09
muy buenas a todosss:


Necesito programa en C o algoritmo q convierta nºs decimales a binario y viceversa. (enteros y fraccionarios,esto es muy importante es decir, q tu puedas introcucir un nº real {minimo q ocupe toda una linea de pantalla} por teclado y el programa t lo separe en una parte entera y una parte fraccionaria y realize los pertinentes calculos por separado y lo imprima en pantalla ).
muxas gracias y un cordial saludossss a todo aquel q conteste xDDD
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problemilla con programacion

Publicado por fernando.gomez (1604 intervenciones) el 23/01/2008 23:10:06
Un número decimal cualquiera ya está dado en binario, por cierto (pues todas las variables se guardan en binario; lo que varía es la interpretación del valor). Si lo que quieres es que dado un número se imprima en pantalla como binario (es decir, tener en una cadena de texto una representación binaria del número)... puedes emplear la función ltoa, y en el tercer parámetro (radix) pones un "2" para indicar que la base es el binario.

long l = 419;
char s[50];

ltoa(l, s, 2);

cout << "El valor de " << l << " en binario es: " << s<< endl;

Debería imprimirte:

El valor de 419 en binario es 110100011

Ahora bien, si quieres hacer el algoritmo tú mismo, pues podrías irte analizando bit por bit y obteniendo su valor. No sé, algo como:

long numero = 419;
char s[50];
int count;

memcpy(s, 0, 50);
count = 0;

do
{
s[count] = numero & 1 ? '1' : '0'; // operas sobre el byte de la derecha
count++;
numero >>= 1; // desplazamos un bit a la derecha
}
while (numero);

strrev(s); // hay que invertir el orden, porque empezamos de derecha a izquierda
cout << "El valor de " << numero << " en binario es: " << s << endl;

y listo.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problemilla con programacion

Publicado por juanjo (3 intervenciones) el 24/01/2008 22:56:21
veras, lo k pasa es k el progrma tiene q leer un numero con decimales ( no solo enteros), es decir tengo una variable
char[100];
en la cual el usuario m va a introducir un numero tal q asi:
2698221,12566941555 (maximo de 100 digitos)
y yo lo tngo q pasar a binario,
el problema sta en q tengo q separar la parte entera de ese numero y la parte fraccionaria y guardarlo cada parte en otra variable para luego hacer los calculos para pasarlo a binario.
m han dixo algo d q tengo q usar el gets y un bucle q m recorra el vecor y se m pare en la coma "," y m separe lo q va antes de ella y lo q va despues.

muxas gracias d toas formassss por la ayuda ofrecida
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar