Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!bellcore!petrus!scherzo!allegra!mit-eddie!think!harvard!seismo!brl-adm!brl-smoke!gwyn From: gwyn@brl-smoke.ARPA (Doug Gwyn ) Newsgroups: net.unix-wizards Subject: Re: Unsigned -> float conversion Message-ID: <2351@brl-smoke.ARPA> Date: Fri, 4-Apr-86 03:56:19 EST Article-I.D.: brl-smok.2351 Posted: Fri Apr 4 03:56:19 1986 Date-Received: Tue, 8-Apr-86 06:16:59 EST References: <144@daisy.warwick.UUCP> Reply-To: gwyn@brl.ARPA Organization: Ballistic Research Lab (BRL) Lines: 29 In article <144@daisy.warwick.UUCP> cudcv@daisy.warwk.ac.uk (Rob McMahon) writes: >main() >{ > unsigned long u; > double d; > float f; > > u = ~0; > d = u; > f = u; > printf("u = %lu f = %f d = %lf\n", u, f, d); > if (d < 0) printf("d < 0\n"); > if (f < 0) printf("f < 0\n"); >} > >On a VAX-780 running 4.2bsd or a Sun-2 running 2.0 it gives > >u = 4294967295 f = -1.000000 d = -1.000000 >d < 0 >f < 0 > >On a Gould PN6000 running UTX/32 1.2 it gives > > >u = 4294967295 f = -1.000000 d = 4294967295.000000 >f < 0 The Gould almost got it right; f should also be a large number, approximately the same as d. The SVR2 VAX PCC gets it right.