我有以下代码:
<?php
$val = fread($fp,1);
echo 'bindec: '.bindec($val)."\n";
echo 'bin2hex: '.bin2hex($val)."\n";
echo 'bin2hex/hexdec: '.hexdec(bin2hex($val))."\n";
?>被读取的字节在我的十六进制编辑器中显示为0F。我的输出如下所示:
bindec: 0
bin2hex: 0f
bin2hex/hexdec: 15我的问题是,为什么bindec要返回0?当然,它应该返回15
发布于 2012-04-18 08:49:17
在第一行中使用ord()函数而不是bindec()。bindec()需要只包含1或0的输入字符串,如"110101“。它不接受“真实”的二进制数据作为输入。
发布于 2012-04-18 08:49:16
哦,误解了你的问题:P
Bindec扩展一个实际的二进制字符串,您给它一个正常的数字。
https://stackoverflow.com/questions/10201215
复制相似问题