| #include <stdlib.h> | 
 | #include <stdio.h> | 
 | #include <sys/types.h> | 
 |  | 
 | int | 
 | main(int argc, char** argv) | 
 | { | 
 |   char     c1; | 
 |   short    s1, ssf1, ssd1; | 
 |   unsigned char  ubs0; | 
 |   signed char   bs0; | 
 |   unsigned char ubc0, uc2; | 
 |   unsigned short us2, usf1, usd1; | 
 |   int ic3, is3, sif1, sid1; | 
 |   uint     uic4, uis4, uif1, uid1; | 
 |   long     slf1, sld1; | 
 |   ulong    ulf1, uld1; | 
 |   float    f1; | 
 |   double   d1; | 
 |    | 
 |   /* Test integer to integer conversions */ | 
 |    | 
 |   c1 = (char)  (argc >= 2)? atoi(argv[1]) : 0xff64; /* 100 = 'd' */ | 
 |   s1 = (short) (argc >= 3)? atoi(argv[2]) : -769;   /* 0xf7ff = -769 */ | 
 |    | 
 |   ubc0 = (unsigned char) c1;                      /* 100 = 'd' */ | 
 |   ubs0 = (unsigned char) s1;                            /* 0xff = 255 */ | 
 |   bs0  = (signed char) s1;                             /* 0xff = -1 */ | 
 |    | 
 |   uc2 = (unsigned char) c1;                       /* 100 = 'd' */ | 
 |   us2 = (unsigned short) s1;                      /* 0xf7ff = 64767 */ | 
 |    | 
 |   ic3 = (int) c1;                                 /* 100 = 'd' */ | 
 |   is3 = (int) s1;                                 /* 0xfffff7ff = -769 */ | 
 |    | 
 |   uic4 = (unsigned int) c1;                       /*  100 = 'd' */ | 
 |   uis4 = (unsigned int) s1;                       /* 0xfffff7ff = 4294966527 */ | 
 |    | 
 |   printf("ubc0 = '%c'\n", ubc0); | 
 |   printf("ubs0 = %u\n",   ubs0); | 
 |   printf("bs0  = %d\n",   bs0); | 
 |   printf("c1   = '%c'\n", c1); | 
 |   printf("s1   = %d\n",   s1); | 
 |   printf("uc2  = '%c'\n", uc2); | 
 |   printf("us2  = %u\n",   us2); | 
 |   printf("ic3  = '%c'\n", ic3); | 
 |   printf("is3  = %d\n",   is3); | 
 |   printf("uic4 = '%c'\n", uic4); | 
 |   printf("uis4 = %u\n",   uis4); | 
 |    | 
 |   /* Test floating-point to integer conversions */ | 
 |   f1 = (float)  (argc >= 4)? atof(argv[3]) : 1.0; | 
 |   d1 =          (argc >= 5)? atof(argv[4]) : 2.0; | 
 |    | 
 |   usf1 = (unsigned short) f1; | 
 |   usd1 = (unsigned short) d1; | 
 |   uif1 = (unsigned int) f1; | 
 |   uid1 = (unsigned int) d1; | 
 |   ulf1 = (unsigned long) f1; | 
 |   uld1 = (unsigned long) d1; | 
 |    | 
 |   ssf1 = (short) f1; | 
 |   ssd1 = (short) d1; | 
 |   sif1 = (int) f1; | 
 |   sid1 = (int) d1; | 
 |   slf1 = (long) f1; | 
 |   sld1 = (long) d1; | 
 |    | 
 |   printf("usf1 = %u\n", usf1); | 
 |   printf("usd1 = %u\n", usd1); | 
 |   printf("uif1 = %u\n", uif1); | 
 |   printf("uid1 = %u\n", uid1); | 
 |   printf("ulf1 = %u\n", ulf1); | 
 |   printf("uld1 = %u\n", uld1); | 
 |    | 
 |   printf("ssf1 = %d\n", ssf1); | 
 |   printf("ssd1 = %d\n", ssd1); | 
 |   printf("sif1 = %d\n", sif1); | 
 |   printf("sid1 = %d\n", sid1); | 
 |   printf("slf1 = %d\n", slf1); | 
 |   printf("sld1 = %d\n", sld1); | 
 |    | 
 |   return 0; | 
 | } |