On Sun, 22 Feb 2004 [EMAIL PROTECTED] wrote:

> It's generating an idivl, which gives you an exception if the (signed)
> result is too large (a.k.a. integer overflow).
>
> Did you notice your compiler warning "this decimal constant is unsigned
> only in ISO C90"? ;)

Yes I did

> +2147483648 is: 10000000 00000000 00000000 00000000.
> -2147483648 is too large to be represented by a signed integer (as it
> would be ~(+2147483648) + 1,

No, -2147483648 is the lower bound and 2147483647 is the upper bound for
signed integers.

-2147483648 = 10000000000000000000000000000000
 2147483647 = 01111111111111111111111111111111

it still doesn't explain the FPE here. What does explain it is that
-2147483648 / -1 = 2147483648 which is too large.

Derick

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to