# | Line 50 | Line 50 | putflt(f, fp) /* put out floating point number */ | |
---|---|---|
50 | double f; | |
51 | FILE *fp; | |
52 | { | |
53 | + | long m; |
54 | int e; | |
55 | ||
56 | < | putint((long)(frexp(f,&e)*0x7fffffff), 4, fp); |
56 | > | m = frexp(f, &e) * 0x7fffffff; |
57 | > | if (e > 127) { /* overflow */ |
58 | > | m = m > 0 ? (long)0x7fffffff : -(long)0x7fffffff; |
59 | > | e = 127; |
60 | > | } else if (e < -128) { /* underflow */ |
61 | > | m = 0; |
62 | > | e = 0; |
63 | > | } |
64 | > | putint(m, 4, fp); |
65 | putint((long)e, 1, fp); | |
66 | } | |
67 |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |