C/Visual C - duda pekeño problema de principiante

 
Vista:

duda pekeño problema de principiante

Publicado por Nefer (1 intervención) el 11/12/2001 13:29:58
Hola, me gustaria que alguien me ayudara.
Soy una estudiante de C, y tengo k hacer un programa k convierta los numeros binarios al sistema decimal y viceversa.

Alguien podria mandarme por correo un código k hiciera esto, con una explicacion de los pasos?? se lo agradeceria muchísimo.

Un besote
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:duda pekeño problema de principiante

Publicado por Alexis Leung (70 intervenciones) el 11/12/2001 21:01:34
Bueno, para convertir de números decimales a binarios es muy fácil todo lo que tienes que hacer es usar la función itoa(int i, char *cad, int radix). Se encuentra en la librería <stdlib.h> (aunque puede variar dependiendo del compilador).

Lo que debes hacer es escribir el programa para que te pida un número, ejemplo: un dato tipo int que se llame num.
Necesitas declarar una variable tipo cadena de texto así:
char cad[50]. (cad lo puedes modificar por el nombre que quieras). Esta variable es donde se guardará el valor binario, claro, pero en forma de texto. (aunque lo puedes pasar a entero con la función atoi)

Radix es la clave de la función, como vas a convertir a binario debes poner el valor 2.
Entonces quedaría así: itoa(num,cad,2);
Si num es igual 10, entonces cad debería tener el valor de 1010.

En cuanto a convertir binario a decimal, que yo sepa no existe otra función que lo haga instantáneamente, así que tienes que crear tu propia función. Aqui te tengo la forma de hacerlo:

Si 11001 es el número a convertir entonces debes hacer esto:

1 multiplicarlo a 2 y elevarlo a 0 = 1
1 multiplicarlo a 2 y elevarlo a 1 = 2
0 multiplicarlo a 2 y elevarlo a 2 = 0
0 multiplicarlo a 2 y elevarlo a 3 = 0
1 multiplicarlo a 2 y elevarlo a 4 = 16
total: 19 = 11001

Si tengo la oportunidad haré el programa y te enviaré el código fuente.
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:duda pekeño problema de principiante

Publicado por Erick Rios (92 intervenciones) el 13/12/2001 17:29:58
#include <stdio.h>

main()
{
int num, bin, col=70;
printf("numero que deceas convertir: ");
scanf("%d",&num);
do
{
bin=num%2;
num=num/2;
gotoxy(col,12);printf("%d",bin);
col--;
}
while(num!=0);
getch();
}

el pseudocodigo de este programa es el siguiente:

1.- Pides el numero que deceas convertir y lo guardamos en num
2.- utilisando el ciclo Do... While (Hacer Mientras)
-Obtenemos el residuo de dividir el numero que queremos convertir entre2 y lo guardamos en bin
-Dividimos entre 2 el numero a convertir
-Mandamos a imprimir bin en la posicion X
-Quitamos 1 a X, para que se cumpla la condicion de las conversione s de numeros (eso ya lo debes de saber)
3.- Terminados el ciclo diciendo que mientras num sea diferente de cero, ya que el binario de cero es cero, asi que no tiene caso seguir imprimiendo ceros que no se toman en cuenta por estar a la derecha, ademas de que si no lo hacemos asi, nuestro programa se hace infinito, se cicla.

Espero que aun te sea de utilidad

DTB

Erick Rios
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

Duda sobre el pekeño problema

Publicado por Emiliano (1 intervención) el 15/01/2002 16:44:54
Que tal? Aprovecho tu duda para hacerle una pregunta a Erick.
Cuando tengo que procesar un valor binario, [no lo puedo verificar ahora por eso lo pregunto..] , no es posible recibir un entero en formato binario por medio de scanf ?
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