1double
2u2d (unsigned int u)
3{
4  return u;
5}
6
7double
8i2d (signed int i)
9{
10  return i;
11}
12
13unsigned int
14d2u (double d)
15{
16  return d;
17}
18
19signed int
20d2i (double d)
21{
22  return d;
23}
24
25main ()
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