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)
| | |-+  Ayuda fraccionario-binario
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda fraccionario-binario  (Leído 6,215 veces)
alexis33de

Desconectado Desconectado

Mensajes: 56


Ver Perfil
Ayuda fraccionario-binario
« en: 31 Mayo 2011, 05:17 am »

Hola veran estaba tratando de transformar los numeros fraccionarios como: "0.125" a la base binaria, he implementado un algoritmo que saca la parte fracionaria pero no logro hacer que transforme , si alguien me podria decir que es lo que estoy haciendo mal se lo agradeceria, saludos
Código
  1. #include <iostream.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. int main()
  6. {
  7. int i;
  8. double num=23.875;
  9. int intpart=(int)num;
  10. double decpart= num-intpart;
  11. double resultado;
  12. char multi[10];
  13. char m[10];
  14. int cambio;
  15. int fracion[10];
  16. cout<<intpart<<" "<<decpart<<endl;
  17.  for(i=0;i<sizeof(decpart);i++)
  18.  {
  19.   intpart=decpart*2;
  20.   itoa(intpart,m,10);
  21.  
  22.   if(intpart<=1)
  23.   cout<<0;
  24.   else
  25.   cout<<1;
  26.  }
  27.  
  28.  
  29. system("pause");
  30. return 0;
  31. }


En línea

alexis33de

Desconectado Desconectado

Mensajes: 56


Ver Perfil
Re: Ayuda fraccionario-binario
« Respuesta #1 en: 31 Mayo 2011, 15:18 pm »

alguien algún comentario?


En línea

Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Ayuda fraccionario-binario
« Respuesta #2 en: 31 Mayo 2011, 15:35 pm »

Tu problema está en que realizas mal el algoritmo.No se trata de ir multiplicando, sino que has de ir dividiendo. Por otro lado, te aconsejaría que guardases el resultado en una cadena de carácteres, en vez de en nñúmeros

Se trata de lo siguiente:

numero=x.825

frac=0.825
frac  >= 1/2 (0.5)? si 1 frac=frac-1/2

frac=0.325
frac >= 1/4 (0.25)? si: 1 frac=frac-1/4

frac=0.125
frac >= 1/8 (0.125)? si: 1 frac=frac-1/8.

frac=0
frac >= 1/16(0.0625)? no: 0
...


PD: No es de buena educación en un foro postear 10 horas después de tu propio post porque nadie haya dicho nada todavía
En línea

alexis33de

Desconectado Desconectado

Mensajes: 56


Ver Perfil
Re: Ayuda fraccionario-binario
« Respuesta #3 en: 1 Junio 2011, 03:15 am »

Lo que paso es que como ayer puse esa duda , a bien entrada la noche y en la mñn vi que no habia comentarios entonces puse ese para q vuelva a subir en la lista de temas para ver si alguien me podia ayudar.
Hize lo que me dijiste pero funciona masomenos ya que tengo   un problema en el limite del for que convierte fraccionarios. Puse el codigo y un comentario donde esta el problema
Código
  1. #include <iostream>
  2. #include <stdlib>
  3. #include <math.h>
  4.  
  5. int main()
  6. {
  7. int numero;
  8. int residuo;
  9. int n;
  10. int  n2=0;
  11. int  m=1;
  12. int i;
  13. double num=0;
  14. cout<<"Escribe el numero: ";
  15. cin>>(num);
  16. int intpart=(int)num;
  17. double decpart= num-intpart;
  18. double resultado;
  19. char multi[10];
  20. int cambio;
  21. int j;
  22. char fracion[10];
  23. while(intpart>0)
  24. {
  25.    n=intpart%2;
  26.    intpart/=2;
  27.    n2+=(n*m);
  28.    m*=10;
  29.  
  30. }
  31. cout<<"decimal: "<<n2<<".";
  32. // PROBLEMA AQUI XD:
  33. for(i=1;i<5;i++)
  34.  {
  35.  
  36.   if(decpart>=(1/pow(2,i)))
  37.    {
  38.    cout<<"1";
  39.  
  40.    }
  41.   else{
  42.   cout<<"0";
  43.  
  44.   }
  45.  
  46.   decpart=decpart-(1/pow(2,i));
  47.  
  48.  }
  49. system("PAUSE");
  50. return 0;
  51. }
  52.  
En línea

Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Ayuda fraccionario-binario
« Respuesta #4 en: 1 Junio 2011, 12:54 pm »

Realizas mal el algoritmo, se resta SI y SOLO SI tienes el 1, sino, no se resta. Lo que siempre se hace es modificar la potencia.

Lo que paso es que como ayer puse esa duda , a bien entrada la noche y en la mñn vi que no habia comentarios entonces puse ese para q vuelva a subir en la lista de temas para ver si alguien me podia ayudar.

Como dije, eso es mala educación.
En línea

Páginas: [1] 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,073 Último mensaje 29 Marzo 2004, 17:17 pm
por hflores07
[ code=C++] Conversor binario-decimal-binario « 1 2 »
Programación C/C++
Chonk 11 23,607 Último mensaje 9 Julio 2010, 17:52 pm
por Debci
Ayuda a subnetear sin saber binario
Redes
estebanvr 5 4,614 Último mensaje 13 Octubre 2011, 22:36 pm
por estebanvr
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines