//  -----------------------------------------------------------------
//  -------  Programm   FloatToBinary                ----------------
//  -------  Numerische Mathematik                   ----------------
//  -------  Ib 03                                   ----------------
//  -------  Bit Darstellung von Float-Zahlen        ----------------
//  -------  Uebung 3.1  Aufgabe 4.)                 ----------------
//  -------                                          ----------------
//  -------  2004 Oktober 21     M.Vogel             ----------------
//  -----------------------------------------------------------------
import java.lang.*;

public class Math3_1_FloatToBinary
{
   static public void main( String[] args )  
   {   
// ------------------------------------------------------------------      
// ---------   binary representation of Float numbers  --------------      
// ------------------------------------------------------------------      
      float  xf                                        ;
      double xd                                        ;
      String zero = "00000000000000000000000000000000" ;
      
      InOut.println("")                                ;
      InOut.println("Float-Zahl einlesen ")            ;
      InOut.println("")                                ;
      xf = InOut.getFloat()                            ;                         

      Float flo = new Float(xf)                        ;
  
      int bit = flo.floatToIntBits(xf)                 ;
      Integer ii= new Integer(bit)                     ;

      InOut.println("")                                ;
      InOut.println(xf,3,9)                            ;
      InOut.print("  ")                                ;
      InOut.println(xf)                                ;
      InOut.println("  "+bit+"  (Integer-number)")     ;
      String s = ii.toBinaryString(bit)                ;
 
      InOut.println("  "+s+"   (binary string)")       ;
      s = zero.substring(0,32-s.length() )+s           ;
      InOut.println("  "+s+"   (binary string)")       ;

      
      InOut.print("  "+s.substring(0,1 )+" ")          ;  // sign bit
      InOut.print("  "+s.substring(1,5 ) )             ;
      InOut.print(" "+s.substring(5,9 )+"   ")         ;  // exponent

      InOut.print(" "+s.substring(9,12) )              ;  //  mantissa
      InOut.print(" "+s.substring(12,16) )             ;
      InOut.print(" "+s.substring(16,20) )             ;
      InOut.print(" "+s.substring(20,24) )             ;
      InOut.print(" "+s.substring(24,28) )             ;
      InOut.println(" "+s.substring(28,s.length())+"   (binary string)")       ;	  
    }  
}
