$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;
按小端计算本回答被提问者采纳
$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;
按小端计算本回答被提问者采纳