2008年03月26日
PHP higixi
んー、PHPの数字表現ぜんぜん知らんけど是は良いのだろうか。
pficore% cat hoge.php <?php $m = 0xf0000000; $v1 = 0x80000000; $v2 = 0x80000000; echo ($v1 & $m) . "\n"; echo ($v2) . "\n"; ?>
PHP 5.2.3 on i686
[kzk@pfi php]# php -v PHP 5.2.3 (cli) (built: Jun 18 2007 19:07:30) Copyright (c) 1997-2007 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies [kzk@pfi php]# php hoge.php -2147483648 2147483648
PHP 5.2.1 on x86_64
pficore% php -v PHP 5.2.1 (cli) (built: Nov 28 2007 23:22:01) Copyright (c) 1997-2007 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies pficore% php hoge.php 2147483648 2147483648
ええぇ。
整数のサイズはプラットフォームに依存しますが、 約 20 億 (32 ビット符号付) が一般的な値です。 PHP は符号無し整数をサポートしていません。 整数のサイズは PHP_INT_SIZE で決まります。
まじで。PHP_INT_SIZEは上の環境が4, 下の環境が8でした。INTのサイズが違うっていう発想が無かったわ。PHP初心者丸出し。
32bit環境で符号無し32bit値について安全に&演算を行える方法を誰か教えて下さい!そもそもPHPでするなという話は有るが・・・。
- by
- at 03:25

comments