使用PHP将二进制转换为十六进制

问题描述 投票:0回答:5

如何使用PHP将二进制数(即1111111)转换为十六进制(即7f)?我知道我可以dechex(bindec('1111111'));,但是,我确定这不是正确的方法。

我尝试过bin2hex('1111111'),但结果为31313131313131。

php binary hex
5个回答
6
投票

您的解决方案很好。您也可以使用base_convert

$binary = '1111111';
echo base_convert($binary, 2, 16); // 7f

但是请记住,php不是为计算而构建的。它是为处理字符串而构建的。


1
投票
dechex(bindec($binary));

这是正确的方法,最后要加上多余的“)”(结束括号...

参考:http://php.net/manual/en/function.bin2hex.php


0
投票

您也可以尝试使用此功能:

<?php

function hexentities($str) {
$return = '';
for($i = 0; $i < strlen($str); $i++) {
    $return .= '&#x'.bin2hex(substr($str, $i, 1)).';';
}
return $return;
 }

?>

0
投票

尝试一下:

<?php
$binary = "11111001";
$hex = dechex(bindec($binary));
echo $hex;
?>

请查看此链接以获取更多信息http://php.net/manual/en/function.bin2hex.php


0
投票

尝试一下:

$len = strlen($binary) * 2;
var_dump( unpack("h$len", $binary) );
© www.soinside.com 2019 - 2024. All rights reserved.