PHP:将十进制转换为二进制


PHP: Convert decimal into binary

我正在尝试将数字101转换为二进制'x00'x65,我不知道如何。

我试过了:

$decimal = 101;
return bin2hex(pack('S', $decimal));

但结果是6500

数字将会改变,当然这必须是动态的。有办法转换吗?

必须使用以下代码通过套接字(TCP/IP)发送数据:

$socket = @fsockopen('127.0.01', '8810', $err_no, $err_str);
    if(!$socket){
        exit('Errore #'.$err_no.': '.$err_str);
    }else{
        fwrite($socket, "?B'x00'x65'x00'x01'x00'x01");
        $read = fread($socket, 255);
        return $read;
        fclose($socket);
      //    $decimal = 101;
        // return bin2hex(pack('n', $decimal));
    }

查看我发送的fwrite字符串。以不同的方式发送数据不起作用

return bin2hex(pack('n', $decimal));

您只是有一个端序问题。'n'表示unsigned short(总是16位,大端字节顺序)

使用下列函数

string decbin ( int $number )

这个函数将返回字符串格式的二进制数。您需要传递十进制数作为参数。

要获得更好的解释和更多示例,请查看php官方文档