【问题标题】:Limit of Binary to Hex conversion in PHPPHP中二进制到十六进制转换的限制
【发布时间】:2013-05-12 00:12:39
【问题描述】:

我需要将二进制字符串转换为十六进制字符串。此代码工作正常:

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

但是,如果我在二进制字符串中添加一个额外的位(或更多位),结果将返回 0。

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

我想我可以将二进制字符串分解成块,然后在最后组合十六进制值,但是有没有更简单的方法?

【问题讨论】:

    标签: php binary hex


    【解决方案1】:

    您的函数将数字隐式转换为 int,达到 32 位限制。 BCMath 一次计算一位,并取字符串中包含的数字,因此您可以乘以数千位。

    不幸的是,没有用于更改数字基数的本机 BCMath 函数,但 the needed function 可以在一分钟内完成。查看链接。

    【讨论】:

      猜你喜欢
      • 2016-02-09
      • 1970-01-01
      • 2014-10-30
      • 2020-06-27
      • 2012-05-28
      • 2011-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多