|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2006-11-11 01:45 UTC] tony2001@php.net
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Nov 01 03:00:01 2025 UTC |
There is some kind of 64 bit integers support, isn't it? I tried this code on several machines running on windows and linux platforms, and it produces the same results: ex. 1: for ($i=0; $i < 64; $i++) echo "<br>$i - " . (1 << $i); doing just fine with 31 bit, so $i must be 32 signed integer, but... ex. 2: for ($j=1, $i=0; $i < 64; $i++, $j*=2) echo "<br>$i - $j"; seems to work fine until $j is less than 15 digits long (2^47), for example you may add echo $j % 10 and it would display -8 for each $i >= 47. But, then again... ex. 3: $arr = str_pad("1", 64, "0"); $y = mysql_fetch_object(mysql_query("SELECT CONV('$arr', 2, 10) AS xx")); echo $y->xx; works just fine, as the $y->xx is unsigned 64 bit integer? But I must admit, this is a silly workaround...