0

我有以下代码:

<?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

4

2 回答 2

1

使用ord()函数而不是bindec()第一行。需要一个仅包含或类似“110101”bindec()的输入字符串。它不将“真实”二进制数据作为输入。10

于 2012-04-18T00:49:17.310 回答
0

糟糕,误解了您的问题:P

Bindec 会消耗一个实际的二进制字符串,而您正在给它一个正常的数字。

于 2012-04-18T00:49:16.380 回答