Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!rutgers!ucla-cs!zen!ucbvax!GMUVAX.BITNET!PERAINO From: PERAINO@GMUVAX.BITNET.UUCP Newsgroups: comp.os.vms Subject: Bafflement. Message-ID: <8709190929.AA01002@ucbvax.Berkeley.EDU> Date: Thu, 17-Sep-87 16:35:00 EDT Article-I.D.: ucbvax.8709190929.AA01002 Posted: Thu Sep 17 16:35:00 1987 Date-Received: Sun, 20-Sep-87 14:24:22 EDT Sender: daemon@ucbvax.BERKELEY.EDU Distribution: world Organization: The ARPA Internet Lines: 21 I have been bashing my brains in on this one. Type in this program. Run it. The result will be; 3 33554436. Can someone out there please explain why? You might wonder where I came up with this program. I found that incrementing 33554432 by 1 does nothing! So I decided to see at what point the increment would take effect. An explanation of the output is needed; the three would mean that the increment took effect when b is 2. But it seems to increment the number by 4! This is also the case in pascal, where I originally tripped on this problem. Somebody PLEASE help me. program test real a,b a = 33554432 b = 1.0 100 if ((a .eq. 33554432) .and. (b .ne. 33554432)) then a = a + b b = b + 1 goto100 endif print*,int(b),int(a) end