Programa en C que convierta un numero con punto decimal osea Float a Binario

Iniciado por thekingluisx, 24 Diciembre 2013, 21:48 PM

0 Miembros y 1 Visitante están viendo este tema.

thekingluisx

Buenas... Necesito Un programa en lenguaje C que convierta números con punto decimal osea números flotantes a Binario...

Quisiera saber si me pueden ayudar con un programa en lenguaje C, que cuando ingrese un numero con punto decimal "numero flotante, (float)", me devuelva ese numero pero en Binario..

Tengo un programa el cual solamente convierte numero enteros a binario por ejemplo si ingreso el numero 5 me lo convierte a su equivalente en binario osea 101... pero si ingreso el numero 5.65 de igual forma solo me convierte el numero 5, y no la parte decimal.. solo me devuelve otra ves 101 que es el valor del numero 5... pero la parte decimal el .65 no, y no logro poder hacer eso..

si alguien fuese tan amable de ayudarme.. se los agradecería mucho....

Este es mi codigo... si alguien puede ayudarme.. Gracias..

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

main()

{
int z,x,n,coc,n2=0;
int nn2[50];

nn2[0]=0;
clrscr();
printf("Conversion de decimal a binario \n" );
printf("Ingrese un numero para convertir \n" );
scanf("%lu",&n);

for (x=0;x<49;x++)
{
nn2
  • =n%2;
    n=n/2;
    if(n==0)
    break;
    }
    for(z=x;z>=0;z--)
    {
    printf("%d",nn2[z]);
    }
    getch();
    }

amchacon

A que te refieres:

- A la expresion en base 2 de un numero decimal, Ej: 101,011
- A como representa el ordenador internamente un float.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

thekingluisx

A la expresion en base 2 de un numero decimal, Ej: 101,011

Exactamente a eso.... :)

thekingluisx

Cita de: amchacon en 24 Diciembre 2013, 22:57 PM
A que te refieres:

- A la expresion en base 2 de un numero decimal, Ej: 101,011
- A como representa el ordenador internamente un float.


""A la expresion en base 2 de un numero decimal, Ej: 101,011""

Exactamente a eso... :)

amchacon

El algoritmo como tal es:

1º Coge la parte decimal. Por ejemplo de 5,25 sería 0,25.
2º Multiplicalo por 2, si el resultado es < 1 entonces pon un 0. Si es >= 1 entonces restale 1 y pon un 1 en los decimales.
3º ¿Tienes un 0? Si no es asi vuelve al paso 2.

Siguiendo ese algoritmo, ese número debería darte 101,01.

Nota: Algunos valores pueden tener decimales periodicos (infinitos).
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

thekingluisx

Cita de: amchacon en 25 Diciembre 2013, 12:31 PM
El algoritmo como tal es:

1º Coge la parte decimal. Por ejemplo de 5,25 sería 0,25.
2º Multiplicalo por 2, si el resultado es < 1 entonces pon un 0. Si es >= 1 entonces restale 1 y pon un 1 en los decimales.
3º ¿Tienes un 0? Si no es asi vuelve al paso 2.

Siguiendo ese algoritmo, ese número debería darte 101,01.

Nota: Algunos valores pueden tener decimales periodicos (infinitos).


Gracias... me ayudo bastante... :)

disculpa otra pregunta.. disculpa la molestia...

Necesito un programa en C... en el cual introduzca dos numeros BINARIOS... y el programa reste esos dos numeros binarios.....

Restar dos numeros binarios... en el lenguaje C.. si pudieras ayudarme.. Gracias....