PHP如何将从二进制文件中读取的字节转换为数字

$a=fread($file,4);
变量$a 从二进制文件$file中读取了4个字节的数据,已经知道这四个字节代表一个整数
请问这样才能将$a 转换为整数,能正确输出和能进行如if($a>20)这样数值比较,

第1个回答  2013-01-01
bindec函数可转换二进制数为十进制数追问

bindec函数不行,bindec函数只是能将 $a="10010101";这样像二进制数 的字符串或者数字转换为10进制,我的那个是可是从文件中读取出来的4个字节哦~

追答

怎么就不可以了?fread函数的返回值难道还不是字符串么?

追问

我试过了,不行的,得进行高低位转换才可以

第2个回答  2015-08-06
bindec 这个函数可以
第3个回答  推荐于2017-09-22
$a=fread(....);//读4个字节
$d=unpack(‘V’,$a); //按32bit无符号小端解码。大端用字母N

echo $d[0];

另,手工计算也可以
$a=fread(....);//读4个字节

$d=ord($a[0]);
$d|=ord($a[1])<<8;

$d|=ord($a[2])<<16;

$d|=ord($a[3])<<24;

按小端计算本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网