| 
 | 
| 
 | 
| 
 | 
| 
   The int value 4 is represented as:
          00000000 00000000 00000000 00000100     (this is the encoding of 4 in int)        
 | 
| 
 | 
| 
 | 
| 
 | 
| 
 | 
| 
 | 
| 
 | 
| 
   public class JavaFunc1
   {
      public static int f(float x)
      {
   	 return (int) (x*x);
      }
       
       
      public static void main(String[] args)
      {
   	 int a;
   	 float b;
       
   	 a = 4;
       
   	 b = f(a);    // int a is converted to float before calling f
                      // int return value is converted to float
		      // before assigning to b
       
   	 System.out.println("a = " + a + ", b = " + b);
      }
   }
 | 
 
        
  
How to run the program:
| 
 | 
| 
   public class JavaFunc2
   {
      public static float f(int  x)
      {
   	 return (x*x);
      }
    
    
      public static void main(String[] args)
      {
   	 float a;
   	 int b;
    
   	 a = 4;
    
   	 b = f(a);   // cannot convert float a to int parameter safely !!!!   
    
   	 System.out.println("a = " + a + ", b = " + b);          
      }
   }
 | 
Result:
| 
cheung@aruba> javac JavaFunc2.java
JavaFunc2.java:17: error: method f in class JavaFunc2 cannot be applied to given types;
      b = f(a);
          ^
  required: int
  found: float
  reason: actual argument float cannot be converted to int by 
          method invocation conversion
1 error
 | 
 
        
  
How to run the program:
| 
 | 
| 
 | 
| 
   #include <stdio.h>
    
   int f(float x)
   {
      return (int) (x*x);
   }
    
    
   void main(int argc, char * argv[])
   {
      int a;
      float b;
    
      a = 4;
    
      b = f(a);         // C will convert int a to float
                        // C will also convert the int return value to float   
    
      printf("a = %d, b = %f\n", a, b);                  
   }
 | 
 
        
  
How to run the program:
| 
 | 
| 
   #include <stdio.h>
    
   float f(int  x)
   {
      return (x*x);
   }
    
    
   void main(int argc, char *argv[])
   {
      float a;
      int b;
    
      a = 4;
    
      b = f(a);  // C compiler will convert float a to int
                 // C compiler will also convert float return value to int   
    
      printf("a = %f, b = %d\n", a, b);               
   }
 | 
 
        
  
How to run the program:
| 
 |