/****************************************************/
       /*      DECIMAL-TO-BINARY FRACTION CONVERTER        */
       /*     Source code written by: A. Yavuz Oruç        */
       /*            E-mail: yavuz@eng.umd.edu             */                
       /*          Last revised:  September 1999           */
       /*  Input:   A decimal fraction                     */  
       /*  Output:  A  binary fraction                     */      
       /*                                                  */
       /****************************************************/


// AYO: This program converts decimal fractions to binary fractions.
// The decimal fraction should be entered with a decimal point followed
// by a sequence of decimal digits. For example, .223, .0123, .345.
// Entries such as 0.1234 will not work.
// The number of digits in the binary fraction is capped at 50. 
// If you want to increase it, just change the argument of B.

               #include <stdio.h> 
               main()
               { int i,j; short  B[50]; float n;
                 
               while(true)
               {   
                 for (i=0; i<50; i++) B[i] = 0; i = 0;
                 //Here enter the decimal fraction
                 printf("Enter decimal fraction starting with a decimal point: "); 
                 scanf("%f",&n); 
                 //Here convert the decimal fraction to binary fraction
                 while (n != 0 && i < 50)
                  { n = 2.0*n; 
                   if (n < 1.0) 
                  { B[i] = 0;}
                  else
                 { B[i] = 1; n = n - 1.0; }
                  i = i + 1;
                  }
                //Here print the binary fraction               
                printf("Binary fraction is: "); 
                for (j=0; j<i; j++) printf("%d",B[j]);
                printf("\n");
     
                }  
               }

/*  Sample Run

Enter decimal fraction starting with a decimal point: .125
Binary fraction is: 001
Enter decimal fraction starting with a decimal point: .25000
Binary fraction is: 01
Enter decimal fraction starting with a decimal point: .0250
Binary fraction is: 000001100110011001100110011
Enter decimal fraction starting with a decimal point: .750
Binary fraction is: 11
Enter decimal fraction starting with a decimal point: .875
Binary fraction is: 111
Enter decimal fraction starting with a decimal point: .999999
Binary fraction is: 111111111111111111101111
Enter decimal fraction starting with a decimal point: .9999999999999
Binary fraction is: 111111111111111111111111
Enter decimal fraction starting with a decimal point: .99999999999999999
Binary fraction is: 11111111111111111111111111111111111111111111111111
Enter decimal fraction starting with a decimal point: .555555555
Binary fraction is: 100011100011100011100011
Enter decimal fraction starting with a decimal point: 

*/
 


Return to my home page

Return to software page