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)
| | |-+  Duda ejercicio C nº binarios
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda ejercicio C nº binarios  (Leído 1,810 veces)
juanpalomo098

Desconectado Desconectado

Mensajes: 27


Ver Perfil
Duda ejercicio C nº binarios
« en: 7 Diciembre 2016, 01:29 am »

Hola tengo que hacer una programa que pase un numero decimal a binario, tengo el ejercicio practicamente hecho, pero no se porque no funciona..
A ver si me consigo explicar...
Son dos bucles uno que saca el resultado de 2 elevado a X mas grande menor que un numero introducido por teclado y otro que resta ese resultado al numero para cuando pase por el primer bucle y ademas eleva 10^X y lo suma cada vez  para dar el numero binario.


Ejemplo si queremos sacar el binario de 15


1 bucle: Resultado de 2^x mas alto <o igual a 15 =   es 2elevado a 3 =8  
2 bucle:  15-8=7 y    10^3 =1000 + 0= 1000
  
1 bucle: Resultado de 2^x mas alto <o igual a7 = es 2elevado a 2 =4
2 bucle: 7-4=3    y      10^2 =100 + 1000  =1100

1 bucle: Resultado de 2^x mas alto < o igual a 13 = es 2elevado a 1 =2
2 bucle: 3-2=1    y      10^1 =10 + 1100 = 1110

1 bucle: Resultado de 2^x mas alto < o igual a 1 = es 2elevado a 0 =2
2 bucle: 1-1=0   y       10^0 =1 + 1110 = 1111  15 en binario



Código
  1. #include<stdio.h>
  2. #include<math.h>
  3. #include<conio.h>
  4. void main(){
  5. int num,ex,suma,res;
  6. printf("introduce numero");
  7. scanf("%d",&num);
  8. ex=0;
  9. suma=0;
  10.  
  11. do{do{
  12. res=(pow (2,ex));
  13.  
  14. ex++;
  15. }while(res<=num);//deberia encontar el resultado de 2^ex mas alto menor que un numero introducido por teclado
  16. ex=ex-2;res=(pow (2,ex));//corrige errores del primer bucle porque al salir del bulcle ex ha aumentado dos veces mas de lo debido
  17. num=num-res;//resta el resultado del bucle al numero introducido por teclado
  18. suma=(suma+(pow(10,ex)));//eleva 10 al numero correspondiente y lo suma con el resultado anterior
  19. ex=0; res=0;//reinicia variable
  20. }while(num<=0);
  21. printf("%d",suma);
  22. }//void


« Última modificación: 7 Diciembre 2016, 03:19 am por juanpalomo098 » En línea

jvm1994

Desconectado Desconectado

Mensajes: 29



Ver Perfil
Re: Duda ejercicio C nº binarios
« Respuesta #1 en: 7 Diciembre 2016, 02:34 am »

Juan hay un algoritmo que es la version "Play House Disney" es mucho más simple y creo que te podría ser de ayuda, te grabé un video, luego de verlo te indico el último paso por que se cortó.

https://sendvid.com/bh8kvbdo

Una vez realizado este algoritmo

Se toman todos los restos y el último cociente desde abajo hacia arriba.

ATENCION: Agarras el último cociente, que es uno (Es el unico que vale 1)
Y después comenzas a agarrar los restos, desde abajo hacia arriba.

Te quedaría 1111

Nota con / podés obtener el cociente
Con % podes obtener el residuo

Ese algoritmo es bastante más facil de aplicar en un programa.

Link útil: http://diagramas-de-flujo.blogspot.com.ar/2013/01/Determinar-cociente-residuo-division-C.html


« Última modificación: 7 Diciembre 2016, 02:40 am por jvm1994 » En línea

"La posibilidad de crear tu mundo."
Código
  1. int main()
  2. {
  3. eMundo * Own = world_new();
  4. if(Own != NULL)
  5. {
  6.    world_create(Own);
  7. }
  8.  
  9. return 0;
  10. }
juanpalomo098

Desconectado Desconectado

Mensajes: 27


Ver Perfil
Re: Duda ejercicio C nº binarios
« Respuesta #2 en: 7 Diciembre 2016, 02:46 am »

Gracias jaja ya se cual es ese algoritmo pero se me ocurrio como hacerlo con este lo que pasa que no se porque no funciona...
En línea

jvm1994

Desconectado Desconectado

Mensajes: 29



Ver Perfil
Re: Duda ejercicio C nº binarios
« Respuesta #3 en: 7 Diciembre 2016, 02:56 am »

Jajaj yo ando estudiando, mañana rindo dos finales juntos, sino revisaba el código.
La verdad es que leí rápido y conteste jajaj, me resultó más efectivo hacer ese mini video y subirlo que ponerme a testear el code, lo siento.
En línea

"La posibilidad de crear tu mundo."
Código
  1. int main()
  2. {
  3. eMundo * Own = world_new();
  4. if(Own != NULL)
  5. {
  6.    world_create(Own);
  7. }
  8.  
  9. return 0;
  10. }
juanpalomo098

Desconectado Desconectado

Mensajes: 27


Ver Perfil
Re: Duda ejercicio C nº binarios
« Respuesta #4 en: 7 Diciembre 2016, 03:39 am »

Ya esta solucionado gracias igualmente.
Código
  1. #include<stdio.h>
  2. #include<math.h>
  3. #include<conio.h>
  4. void main(){
  5. int num,ex,suma,res;
  6. printf("introduce numero");
  7. scanf("%d",&num);
  8. ex=0;
  9. suma=0;
  10.  
  11. do{do{
  12. res=(pow (2,ex));
  13.  
  14. ex++;
  15. }while(res<=num);//deberia encontar el resultado de 2^ex mas alto menor que un numero introducido por teclado
  16. ex=ex-2;res=(pow (2,ex));//corrige errores del primer bucle porque al salir del bulcle ex ha aumentado dos veces mas de lo debido
  17. num=num-res;//resta el resultado del bucle al numero introducido por teclado
  18. suma=(suma+(pow(10,ex)));//eleva 10 al numero correspondiente y lo suma con el resultado anterior
  19. ex=0; res=0;//reinicia variable
  20. }while(0<num);//error estaba aqui
  21. printf("%d",suma);
  22. }//void
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda sobre transferencia de datos binarios mediante puerto&IP
Programación Visual Basic
ricardovinzo 0 1,417 Último mensaje 23 Agosto 2008, 23:44 pm
por ricardovinzo
Duda con respecto a binarios, decimales ,etc
Programación C/C++
elkiy 6 2,998 Último mensaje 24 Abril 2013, 04:05 am
por 85
Duda con suma de números binarios!
ASM
The Swash 0 2,492 Último mensaje 22 Octubre 2013, 03:27 am
por The Swash
Duda LECTURA ARCHIVOS BINARIOS
Programación C/C++
Omar_2013 6 2,330 Último mensaje 11 Mayo 2014, 20:28 pm
por Omar_2013
Ejercicio examen arboles binarios
Programación C/C++
alhuertis 4 3,320 Último mensaje 20 Mayo 2015, 17:28 pm
por alhuertis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines