Although I'm not the one who first addressed this, I meant it's not a bug but undocumented stuff. BTW, why didn't you use the recommended web interface within the bug system instead of just replying the notification mail?
Moriyoshi "Kouber Saparev" <[EMAIL PROTECTED]> wrote: > The >>> operator exist in Java...obviously <<< have no sense, you cannot > shift left and keep the sign bit. > > I don't see anything strange in the behaviour of bitwise operators: > > $i = 1; > $i <<= 31; > printf("%d\n", $i); > > This code outputs the same thing (-2147483648) in PHP, Perl and in C. > However, the behaviour of the "print" operator is different in PHP and in > Perl: > > print $i; > > This will output -2147483648 in PHP and 2147483648 in Perl. > > > <[EMAIL PROTECTED]> wrote in message > news:[EMAIL PROTECTED] > > ID: 25877 > > Updated by: [EMAIL PROTECTED] > > Reported By: cestmirl at freeside dot sk > > Status: Open > > Bug Type: Documentation problem > > Operating System: Linux Debian, Win32 > > PHP Version: 4.3.3 > > New Comment: > > > > Heh, who told me that C supports '>>>' operator... there's no such > > operator in that language. > > > > > > Previous Comments: > > ------------------------------------------------------------------------ > > > > [2003-10-15 07:56:56] [EMAIL PROTECTED] > > > > Since PHP doesn't support unsigned shift operations that are > > represented by '<<<' or '>>>' in the C language, bit shift operations > > are done in "sign-respectful" manner, where the most significant bit > > will never be changed. This is expected behaviour, but not documented > > yet. > > > > > > ------------------------------------------------------------------------ > > > > [2003-10-15 07:40:14] cestmirl at freeside dot sk > > > > Description: > > ------------ > > Bitwise shift right operator returns negative result (most significant > > bit set) for negative input (left operand). > > > > Following assert fails (though should NOT) > > > > assert((1 << 31 >> 31) == 1); > > > > Reproduce code: > > --------------- > > assert((1 << 31 >> 31) == 1); > > > > Actual result: > > -------------- > > assertion failed > > > > > > ------------------------------------------------------------------------ > > > > > > -- > > Edit this bug report at http://bugs.php.net/?id=25877&edit=1