elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Programa de conversiones. ayuda por favor
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Programa de conversiones. ayuda por favor  (Leído 5,695 veces)
HIUM

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Programa de conversiones. ayuda por favor
« en: 23 Julio 2011, 00:14 am »

Buenas! tengo un problema con este código, por problemas ajenos pude entregar a las clases de programacion II y el profe nos recomendo este código para practicar. No entiendo algunas cosas, como por ejemplo: for(;;), la funcion unsigned long conversor.

EL CODIGO TRATA DE UNAS CONVERSIONES DE DECIMAL A BINARIO, BINARIO A OCTAL Y ASÍ SUCESIVAMENTE. NECESITO ALGUNOS TIPS DE ESTE CODIGO POR FAVOR!!


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

char menu()
{
char c;

printf("1 - Decimal -> Binario\n");
//printf("2 - Decimal -> Octal\n");
printf("3 - Decimal -> Hexadecimal\n");
printf("4 - Binario -> Decimal\n");
//printf("5 - Binario -> Octal\n");
printf("6 - Binario -> Hexadecimal\n");
//printf("7 - Octal -> Decimal\n");
//printf("8 - Octal -> Binario\n");
//printf("9 - Octal -> Hexadecimal\n");
printf("A - Hexadecimal -> Decimal\n");
printf("B - Hexadecimal -> Binario\n");
//printf("C - Hexadecimal -> Octal\n");
printf("S - Salir\n");

printf("\nSeleccione opcion: ");
c = getche();
return c;
}


unsigned long conversor(unsigned long n1,int base1,int base2)
{
unsigned long alg,mult=1,n2=0;
while (n1 > 0)
{
alg = n1 % base1;
n1 /= base1;
n2 += (alg*mult);
mult *= base2;
}
return n2;
}

void main()
{
unsigned long n;
char op;


for(;;)
{
clrscr();
op = menu();
clrscr();

switch(op)
{
case '1':
printf("Conversor Decimal -> Binario\n");
printf("Introduza un numero Decimal: ");
scanf("%lu",&n);
printf("Numero Binario correspondente: ");
printf("%lu",conversor(n,2,10));
break;

/*case '2':
printf("Conversor Decimal -> Octal\n");
printf("Introduza um numero Decimal: ");
scanf("%lu",&n);
printf("Numero Octal correspondente: ");
printf("%lo",n);
break; */

case '3':
printf("Conversor Decimal -> Hexadecimal\n");
printf("Introduza um numero Decimal: ");
scanf("%lu",&n);
printf("Numero Hexadecimal correspondente: ");
printf("%lx",n);
break;

case '4':
printf("Conversor Binario -> Decimal\n");
printf("Introduza un numero Binario: ");
scanf("%lu",&n);
printf("Numero Decimal correspondente: ");
printf("%lu",conversor(n,10,2));
break;

/*case '5':
printf("Conversor Binario -> Octal\n");
printf("Introduza un numero Binario: ");
scanf("%lu",&n);
printf("Numero Octal correspondente: ");
printf("%lo",conversor(n,10,2));
break;*/

case '6':
printf("Conversor Binario -> Hexadecimal\n");
printf("Introduza un numero Binario: ");
scanf("%ld",&n);
printf("Numero Hexadecimal correspondente: ");
printf("%lx",conversor(n,10,2));
break;

/*case '7':
printf("Conversor Octal -> Decimal\n");
printf("Introduza un numero Octal: ");
scanf("%lo",&n);
printf("Numero Decimal correspondente: ");
printf("%lu",n);
break;

case '8':
printf("Conversor Octal -> Binario\n");
printf("Introduza un numero Octal: ");
scanf("%lo",&n);
printf("Numero Binario correspondente: ");
printf("%lu",conversor(n,2,10));
break;

case '9':
printf("Conversor Octal -> Hexadecimal\n");
printf("Introduza un numero Octal: ");
scanf("%lo",&n);
printf("Numero Hexadecimal correspondente: ");
printf("%lx",n);
break;            */

case 'A':
case 'a':
printf("Conversor Hexadecimal -> Decimal\n");
printf("Introduza un numero Hexadecimal: ");
scanf("%lx",&n);
printf("Numero Decimal correspondente: ");
printf("%lu",n);
break;

case 'B':
case 'b':
printf("Conversor Hexadecimal -> Binario\n");
printf("Introduza un numero Hexadecimal: ");
scanf("%lx",&n);
printf("Numero Binario correspondente: ");
printf("%lu",conversor(n,2,10));
break;

/*case 'C':
case 'c':
printf("Conversor Hexadecimal -> Octal\n");
printf("Introduza un numero Hexadecimal: ");
scanf("%lx",&n);
printf("Numero Octal correspondente: ");
printf("%lo",n);
break;    */

case 'S':
case 's':
exit(0);
break;

default:
printf("Opcion invalida!");
}
getch();
}
}


En línea

bigfu

Desconectado Desconectado

Mensajes: 49



Ver Perfil WWW
Re: Programa de conversiones. ayuda por favor
« Respuesta #1 en: 23 Julio 2011, 00:53 am »

¿Qué es lo que no entiendes del unsigned long conversor? ¿Lo que es o lo que hace?


En línea

A reader lives a thousand lives before he dies. The man who never reads lives only one
HIUM

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Programa de conversiones. ayuda por favor
« Respuesta #2 en: 23 Julio 2011, 01:17 am »

esa funcion no la entiendo amigo!! y cuando comienza el for

for(;;) que hace ese for?

por favor!
En línea

Queta

Desconectado Desconectado

Mensajes: 267



Ver Perfil
Re: Programa de conversiones. ayuda por favor
« Respuesta #3 en: 23 Julio 2011, 01:27 am »

Ese for hace un bucle infinito.
En línea

"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
HIUM

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Programa de conversiones. ayuda por favor
« Respuesta #4 en: 23 Julio 2011, 01:35 am »

y la funcion que hace? creo que es para realizar todas las conversiones!!
En línea

Queta

Desconectado Desconectado

Mensajes: 267



Ver Perfil
Re: Programa de conversiones. ayuda por favor
« Respuesta #5 en: 23 Julio 2011, 01:43 am »

http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B

Esfuérzate un poquito anda...
En línea

"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
HIUM

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Programa de conversiones. ayuda por favor
« Respuesta #6 en: 23 Julio 2011, 15:49 pm »

por favor
En línea

bigfu

Desconectado Desconectado

Mensajes: 49



Ver Perfil WWW
Re: Programa de conversiones. ayuda por favor
« Respuesta #7 en: 23 Julio 2011, 16:11 pm »

Sabes como hacerlo manualmente?? es decir, sabes convertir entre bases numéricas??
En línea

A reader lives a thousand lives before he dies. The man who never reads lives only one
HIUM

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Programa de conversiones. ayuda por favor
« Respuesta #8 en: 23 Julio 2011, 16:31 pm »

si! pero me cuesta un poco para hexadecimal y viceversa
En línea

bigfu

Desconectado Desconectado

Mensajes: 49



Ver Perfil WWW
Re: Programa de conversiones. ayuda por favor
« Respuesta #9 en: 23 Julio 2011, 16:56 pm »

Bueno, pues intenta hacer un ejemplo facilito en un papel con el código de la función, paso por paso. Verás como lo entiendes rápidamente.

Y la conversión para hexadecimal es igual que las demás, lo único es que si el resto está entre 10 y 15, ha de sustituirse por A, B, C, D, E o F.
En línea

A reader lives a thousand lives before he dies. The man who never reads lives only one
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con conversiones de Binario a Decimal « 1 2 »
Ingeniería Inversa
Vtec 15 8,729 Último mensaje 29 Marzo 2004, 17:17 pm
por hflores07
Ayuda con programa por favor
Programación C/C++
Crucita25 2 1,785 Último mensaje 8 Agosto 2014, 07:53 am
por eferion
Ayuda por favor con programa en DEV-C++
Programación C/C++
Faceless 1 1,722 Último mensaje 27 Septiembre 2015, 04:23 am
por engel lex
Por favor ayuda con un programa.
Software
pullmanpol 1 1,213 Último mensaje 30 Enero 2016, 22:10 pm
por Machacador
Ayuda por favor con un programa
Programación C/C++
guirudj007 4 3,081 Último mensaje 5 Febrero 2016, 06:12 am
por furciorifa
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines