// Float.floatToIntBits( float ) = Returns a representation of the specified // floating-point value according to the IEEE 754 format public class func_call_conv1 { static int f( float x) { System.out.printf(" f: x = %f , in binary: ", x); printBitFloat(x); System.out.println(); int r; r = (int) (x*x); System.out.printf(" f: r = %d , in binary: ", r); printBitInt(r); System.out.println("\n"); return(r); } public static void main(String[] args) { int a; float b; a = 2; System.out.printf("main: a = %d , in binary: ", a); printBitInt(a); System.out.println("\n"); b = f(a); System.out.printf("main: b = %f , in binary: ", b); printBitFloat(b); System.out.println("\n"); } /* ========================================== Bit pattern printing methods... ========================================== */ static void printBitFloat( float x ) { int i; for ( i = 31; i >= 0; i-- ) { if ( (Float.floatToIntBits(x) & (1 << i)) != 0 ) System.out.print("1"); else System.out.print("0"); } } static void printBitInt( int x ) { int i; for ( i = 31; i >= 0; i-- ) { if ( (x & (1 << i)) != 0 ) System.out.print("1"); else System.out.print("0"); } } }