Contents    Page-10    Prev    Next    Page+10    Index

Floating Point Examples

```
/*  floats.exmp    Print out floating point numbers         06 Feb 91   */
static float nums[30] = { 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0,
9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 3.1, 3.14,
3.1415927, 0.5, 0.25, 0.125, -1.0, -2.0, -3.0, -0.5, -0.25, -3.1415927 };

printnum(f,plainf)
float f;  unsigned plainf;    /* look at the float as a bit string */
{  int sign, exp, expb;  long mant, mantb;
{ sign = (plainf >> 31) & 1;
exp  = (plainf >> 20) & 2047;
expb = exp - 1023;
mant = plainf & 1048575;
mantb = mant + 1048576;
printf("%12f  %11o    %1o    %4o       %5d     %7o       %7o\n",
f, plainf, sign, exp, expb, mant, mantb);  } }

/* This appears to be double-precision floating point format: */
/* 1 bit sign, 11 bits biased exponent, 20 bits mantissa + 32 in next word */

floating  octal         sign  biased   corrected   actual        corrected
exponent exponent    mantissa      mantissa

0.000000            0    0       0       -1023           0       4000000
1.000000   7774000000    0    1777           0           0       4000000
2.000000  10000000000    0    2000           1           0       4000000
3.000000  10002000000    0    2000           1     2000000       6000000
4.000000  10004000000    0    2001           2           0       4000000
5.000000  10005000000    0    2001           2     1000000       5000000
9.000000  10010400000    0    2002           3      400000       4400000
3.100000  10002146314    0    2000           1     2146314       6146314
3.140000  10002217270    0    2000           1     2217270       6217270
3.141593  10002220773    0    2000           1     2220773       6220773
0.500000   7770000000    0    1776          -1           0       4000000
0.250000   7764000000    0    1775          -2           0       4000000
0.125000   7760000000    0    1774          -3           0       4000000
-1.000000  27774000000    1    1777           0           0       4000000
-2.000000  30000000000    1    2000           1           0       4000000
-3.000000  30002000000    1    2000           1     2000000       6000000
-0.500000  27770000000    1    1776          -1           0       4000000
-3.141593  30002220773    1    2000           1     2220773       6220773
```