Home > Archives > 2008-03

2008-03

卒業

  • 2008-03-29 (Sat)
  • IS
  • hatena button
  • hatena count
  • save this page del.icio.us

先日東京大学理学部情報科学科を卒業しました。
理学部学修奨励賞なるものも頂いて、ほんと有り難い限りです。
引き続き、東京大学大学院情報理工学系研究科コンピューター科学専攻に進学します(名前長杉)。
駒場時代は無事に卒業出来るとは思ってなかったので、良かった良かった。
不真面目な僕を助けてくれた同期の皆様、ありがとう(ぺこり

PHP higixi

んー、PHPの数字表現ぜんぜん知らんけど是は良いのだろうか。


pficore% cat hoge.php
<?php
$m  = 0xf0000000;
$v1 = 0x80000000;
$v2 = 0x80000000;
echo ($v1 &amp;amp; $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でするなという話は有るが・・・。

PHP higixi

誰かこのPHPの挙動を説明してください・・・。ThriftのPHPライブラリが動かなかったので見つけた。

サンプルコード


pficore% cat hoge.php
<?php
$v1 = 132;
$d = pack("N", $v1);
$v2 = unpack("N", $d);
print_r($v2);
$unpacked = unpack('nhigh/nlow', $d);
$v2 = ($unpacked['high'] << 16) + $unpacked['low'];
print_r($v2)
?>

PHP v5.2.1


pficore% php --version
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
Array
(
  [1] => -2147483516
)
132

PHP v4.3.9


[web at pfiweb1 ~]$ php --version
PHP 4.3.9 (cgi) (built: May 10 2007 05:09:26)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
[web at pfiweb1 ~]$ php hoge.php
Array
(
  [1] => 132
)
132

Home > Archives > 2008-03

お薦め本
広告
Archives
Categories

Return to page top