免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
在64位服務(wù)器上,php長整型的表示

在64位服務(wù)器上,php長整型的表示

來源: 作者: 發(fā)表于:2012-08-18 10:59  點(diǎn)擊:69
php中,對數(shù)據(jù)類型的轉(zhuǎn)換可直接使用pack來完成,比如表示字符型,短整型、整型、長整型可分別使用參數(shù)c、s、i、N來表示,當(dāng)然這里轉(zhuǎn)換后的數(shù)據(jù)為二進(jìn)制數(shù)據(jù),是不可讀的,為了能正常讀取,可直接unpack來將數(shù)據(jù)從二進(jìn)制流還愿成可讀的字符類型。 以下為各各

php中,對數(shù)據(jù)類型的轉(zhuǎn)換可直接使用pack來完成,比如表示字符型,短整型、整型、長整型可分別使用參數(shù)c、s、i、N來表示,當(dāng)然這里轉(zhuǎn)換后的數(shù)據(jù)為二進(jìn)制數(shù)據(jù),是不可讀的,為了能正常讀取,可直接unpack來將數(shù)據(jù)從二進(jìn)制流還愿成可讀的字符類型。
以下為各各類型的實(shí)際長度。

$uid = 1346563572;

長度為10,直接為字符類型來計算

echo strlen($uid); // 10

轉(zhuǎn)換短整型,長度為2,當(dāng)然這里超過了短整型的值范圍,所以高位數(shù)據(jù)會丟失

echo strlen(pack(‘s’,$uid)); // 2

轉(zhuǎn)換為整型,長度為4

echo strlen(pack(‘i’,$uid)); // 4

轉(zhuǎn)換成長整型,長度為4

echo strlen(pack(‘N’,$uid)); //4

其它類型都正確,唯獨(dú)長整型在64bit機(jī)器上始終表示4位,應(yīng)該為8bit才對,所以為了解決這種問題,在不丟失數(shù)據(jù)的數(shù)據(jù),可采用以下方式進(jìn)行轉(zhuǎn)換。

$i = 333333333333333333;
$v = pack(“NN”,$i >> 32,$i&0xFFFFFFFF);
file_put_contents(“/tmp/long.txt”,$v);
echo strlen($v)

長度為8

讀取可采用以下方式

$v = file_get_contents(“/tmp/long.txt”);
list ($hi,$lo) = array_values(unpack(“N*N*”,$v));
if ($hi <0) $hi += (1 < < 32);
if ($ho <0) $lo += (1 << 32);
echo ($hi << 32) + $lo;

備注:以上腳本均在64位版本的php環(huán)境中運(yùn)行。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
PHP的位運(yùn)算
一篇文章帶你弄懂Python基礎(chǔ) 之進(jìn)制和數(shù)據(jù)類型
php表單操作相關(guān)匯總及代碼示例
php基本語法和數(shù)據(jù)類型、變量銷毀
PHP丨數(shù)據(jù)類型
workerman簡單例子
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服