ID: 30970
User updated by: wboring at qualys dot com
Reported By: wboring at qualys dot com
Status: Open
Bug Type: Scripting Engine problem
Operating System: linux
PHP Version: 5.0.2
New Comment:
If I do a simple var_dump( 0x80000000 ); in php4 and 5 I get the same
result of float(2147483648).
If I try and do something like
$n ^= 0x80000000; //to flip the high bit, then it breaks.
<?php
$n = -1979053311;
var_dump( sprintf('%32b',$n).' '.$n);
$n ^= 0x80000000; // flip the high (sign) bit
var_dump( sprintf('%32b',$n).' '.$n );
?>
php4.3.9 :
string(45) "10001010000010100000101100000001 -1979053311"
string(43) " 1010000010100000101100000001 168430337"
php5.0.2 :
string(32) "10001010000010100000101100000001 -1979053311"
string(44) "11110101111101011111010011111110 -168430338"
Previous Comments:
------------------------------------------------------------------------
[2004-12-03 00:46:39] wboring at qualys dot com
Description:
------------
If I set an integer to a value of 0x80000000, it works properly in
php4, but in php5 the value becomes 0x7FFFFFFF.
My configure line:
./configure \
--with-oci8=/u01/app/oracle/product/8.1.7 \
--enable-sigchild \
--with-mcrypt \
--with-gd \
--with-png-dir=/usr \
--with-jpeg-dir=/usr \
--with-zlib-dir=/usr \
--enable-sysvsem \
--enable-sysvshm \
--enable-shmop \
--with-xml \
--with-zlib \
--with-gdbm \
--with-dom \
--with-curl=/usr \
--with-mysql=/usr \
--enable-mbstring \
--enable-tokenizer \
--enable-sockets \
--with-kerberos=/usr/kerberos \
--with-openssl \
--disable-cgi \
--with-xsl \
--with-bz2 \
--with-mhash \
--enable-soap \
--with-flatfile \
--with-inifile \
--with-curlwrappers \
--with-apxs=/usr/local/apache/bin/apxs
Reproduce code:
---------------
<?php
$n = 0x80000000;
printf('%b', $n);
?>
Expected result:
----------------
php4.3.9: 10000000000000000000000000000000
php5.0.2: 10000000000000000000000000000000
Actual result:
--------------
php4.3.9: 10000000000000000000000000000000
php5.0.2: 1111111111111111111111111111111
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=30970&edit=1