Division by zero is an undefined operation, and as such its result is literally Not a Number (NaN). RobRix has taken to signing his e-mails with “R / 0” for just this reason.
The one obvious difference between a PPC and x86 is that on x86 division by 0 is a no no, while on a PPC it’ll gracefully return 0. That’s beauty, baby.
Haha, gracefully be wrong? I’d rather get the crash. :-)
This is only true for integers. For floats, both platforms will (should?) return NaN.
Does anybody know what to do if you get a nan value instead of some very large (or very small) float. Is there some flag I can set to just get max_int in its positive or negative incarntation instead of NaN? Help!!!!!!! Thanks! (I’m using GCC-3.3)
Here’s a helpful pdf on the subject. Are you sure you want to just ignore this exception? Page 22 talks about exception handling for NaN exceptions.
Also, at least according to the IEEE spec, NaN != NaN even when they’re the same NaN, so it’s possible (though a little crufty) to test for it that way.
That’s exactly how you’re expected to test for NaN in some languages. C (and therefore Objective-C) defines the function isnan() (inlined in GCC I believe), which you can also use to check for NaN. -JonathanGrynspan