1 double
u2d(unsigned int u)2 u2d (unsigned int u)
3 {
4   return u;
5 }
6 
7 double
i2d(signed int i)8 i2d (signed int i)
9 {
10   return i;
11 }
12 
13 unsigned int
d2u(double d)14 d2u (double d)
15 {
16   return d;
17 }
18 
19 signed int
d2i(double d)20 d2i (double d)
21 {
22   return d;
23 }
24 
main()25 main ()
26 {
27   printf ("%lf, %lf, %lf\n", u2d (~0), u2d (1 << 31), u2d (1));
28   printf ("%lf, %lf, %lf\n", i2d (~0), i2d (1 << 31), i2d (1));
29 
30   printf ("%u, %u, %u\n", d2u (u2d (~0)), d2u (u2d (1 << 31)), d2u (u2d (1)));
31   printf ("%d, %d, %d\n", d2i (i2d (~0)), d2i (i2d (1 << 31)), d2i (i2d (1)));
32 }
33