mathajax

Binary to Real number conversion

The number system conversion is carried out for a binary numbers (base-2) into real number (base 10). The input binary bit sequence consists of integer and fraction binary bits separated by a decimal point. The integer bits and fractional bits are converted into decimal value separately and then combined to print real value as a result of given binary bit sequence.

The fractional part of binary bits are converted into decimal fraction value by multiplication of the bits by 2 power of negative positional value of the bits.


Binary to Real number Conversion - Manual Calculation

       Given input binary numbers = 1110.1001, converts it into a real number.      

       separate binary bits into integer binary bits and fractional binary bits   
                by a delimiter . (point)
       binary bits (integer part)   = 1110
       binary bits (fraction part)  = 1001

      Binary bits (integer part) into decimal conversion 
             binary bits (integer part)   = 1110
             1 x 2^3  + 1 x 2^2 + 1 x 2^1 + 0 x 2^0
             1 x 8     +  1 x 4 + 1 x 2   + 0  x 1
                8       +  4          +  2  + 0

          1110 (base 2)   = 14  (base 10)            
 

Binary bits into Decimal fraction conversion The fraction binary bits is multiplied by 2 power of negative bit position value. The position value order starts from right to left

Binary bits(fractional part) = 1001 = 1x 2^(-4) + 0x 2^(-3) + 0x 2^(-2) +1 x 2^(-1) = 1 x 0.0625 + 0 x 0.125 + 0x 0.25 +1 x 0.5 =0.5625

combined results Given binary bits (base 2) = 1110.1001 real value (base 10)= 14.5625


Binary to Real number conversion - Java program

The Java param converts a binary bit sequence read from user into a real value consists of decimal value (integer) and fractional value.

 
import java.util.Scanner;
public class Binary2FDecimal {

 public static int bin2dec(String bits) {
  
    int decval=0;
    int len = bits.length();
    for(int n=0; n<len; n++ ) 
     {      
       if ( bits.charAt(n) == '1' )         
        decval += Math.pow(2,len-n-1);             
                      
    }
    return decval;
 }
 
 public static double bin2frac(String bits) {
  
    double fval=0;
    int len = bits.length();
    for(int n=0; n<len; n++ ) 
     {     
         int bval = Integer.parseInt(bits.charAt(n)+"");                
         fval += bval *  1.0/Math.pow(2,n+1);             
                      
    }
    return fval;
  
 }
 
 public static void main(String[] args) {
  
    Scanner sc=new Scanner(System.in);
    System.out.println("Binary to Fractional decimal Conversion");
  
  System.out.println("Enter binary bits with a decimal point");  
  String bits=sc.nextLine();
  sc.close();

  String parts[]=bits.split("\\.");
  
  System.out.println("\nBinary decimal part : " + parts[0]);
  int decval = Binary2FDecimal.bin2dec(parts[0]) ;
  System.out.println("Decimal value : " + decval);
  
  System.out.println("\nBinary fractional part : " + parts[1]);
  double fval = Binary2FDecimal.bin2frac(parts[1]);
  System.out.println("Fractional value : " + fval);
  
  
  double dval  = fval+decval;
  System.out.println("Combined Double value : " + dval);      
 }
}

Binary to Real number conversion - Java code output


 Binary to Fractional decimal Conversion
Enter binary bits with a decimal point
11010.11010

Binary decimal part : 11010
Decimal value : 26

Binary fractional part : 11010
Fractional value : 0.8125
Combined Double value : 26.8125

Comments

Popular posts from this blog

Solving System of Linear Equations by Gauss Jordan Elimination

Matrix Forward and Back Substitution

Solve System of Linear Equations by LU Decompose

Matrix Determinant by Upper Triangular Matrix

Chebyshev distance between two points