From: Spiro Trikaliotis (ml-cbmhackers_at_trikaliotis.net)
Date: 2004-12-10 07:18:46
Hello, (just commenting on this part, as I've not read the other parts of this thread:) * On Thu, Dec 09, 2004 at 02:19:02PM -0600 Jim Brain wrote: > The corner case is when the counter is at 65535 (for example), and it > wraps, to 4095. > > 4095-65535 = -61440 -> (signed int) -4095 (I think...) This would be +4096, not -4095: -61440 = $FFF...FF1000; only getting the least 16 bits results in $1000, thus, 4096. Anyway, at least this is true for most compilers that I need. As soon as you leave the range of your signed arithmetic, you loose the grounds of ANSI C. In fact, the compiler can code this case like it wants; it could even through an exception and terminate your program, or fill the variable with some random number, or ... But, as I told: You're right, the above is the behaviour I've seen on all compilers I worked with so far. Regards, Spiro. -- Spiro R. Trikaliotis http://www.trikaliotis.net/ Message was sent through the cbm-hackers mailing list
Archive generated by hypermail pre-2.1.8.