Posted by Palle Hansen on 09/29/54 11:37
yawnmoth wrote:
> Using >> normally shifts bits to the right x number of times, where x
> is specified by the programmer. As an example, 0x40000000 >> 8 yields
> 0x00400000. This makes me wonder... why doesn't the same thing happen
> with 0x80000000 >> 8? The number it yields is 0xff800000 - not
> 0x00800000. The following script better demonstrates this:
>
> <?
> echo sprintf('%08x',0x40000000 >> 8)."\n";
> echo sprintf('%08x',0x80000000 >> 8);
> ?>
>
> Anyway, any ideas?
My guess is that PHP sees 0x8000000 as a *signed* integer
[Back to original message]
|