home *** CD-ROM | disk | FTP | other *** search
/ Jason Aller Floppy Collection / 98.img / LCNOW2.ZIP / EXAMPLES / CONVERT.C < prev    next >
C/C++ Source or Header  |  1988-08-02  |  1KB  |  45 lines

  1. /*
  2.  * C O N V E R T
  3.  *
  4.  * Show the effects of both implicit and explicit data
  5.  * conversions in expressions involving different types.
  6.  */
  7.  
  8. main()
  9. {
  10.     /* Variable declarations and initializations. */
  11.     char cv;
  12.     int iv1 = 321;
  13.     float fv1, fv2;
  14.  
  15.     /*
  16.      * Lost precision: Show the effect of storing an
  17.      * integer-sized value in a character variable.
  18.      */
  19.     printf("CONVERT:\n\n");
  20.     cv = iv1;
  21.     printf("Integer assigned to character: %d -> %d (%c)\n\n",
  22.         iv1, cv, cv);
  23.  
  24.     /*
  25.      * Integer arithmetic: Show loss of fractional component
  26.      * when numbers are involved in integer-only expressions
  27.      * and how to retain the fractional component.
  28.      */
  29.     fv1 = iv1 / 50;
  30.     printf("Integer arithmetic: %d / 50   = %f\n", iv1, fv1);
  31.     fv1 = iv1 / 50.0;
  32.     printf("   Real arithmetic: %d / 50.0 = %f\n\n", iv1, fv1);
  33.  
  34.     /*
  35.      * Promotion: In the following example, an integer
  36.      * is promoted to a float before being added to a
  37.      * floating-point variable.
  38.      */
  39.     fv1 = 1028.750;
  40.     fv2 = fv1 + iv1;
  41.     printf("%f + %d equals %f\n", fv1, iv1, fv2);
  42.  
  43.     return (0);
  44. }
  45.