#30970 [Opn]: 32bits not supported?

From: Date: Fri, 03 Dec 2004 00:36:36 +0000
Subject: #30970 [Opn]: 32bits not supported?
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-69752@lists.php.net to get a copy of this message
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

« previous php.bugs (#69752) next »