【问题标题】:Convert binary to hexadecimal using PHP使用PHP将二进制转换为十六进制
【发布时间】:2016-03-03 06:55:07
【问题描述】:

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

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

【问题讨论】:

    标签: php binary hex


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢谢尔盖。这似乎更好一些(或至少更具可读性)。
    【解决方案2】:
    dechex(bindec($binary));
    

    这是正确的方法,你在最后加上额外的“)”(右括号)......

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

    【讨论】:

    • 为什么引用bin2hex()?从名字上看,有人会认为它会起作用,但事实并非如此。
    【解决方案3】:

    你也可以试试这个功能:

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

    【讨论】:

      【解决方案4】:

      试试这个:

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

      查看此链接了解更多信息 http://php.net/manual/en/function.bin2hex.php

      【讨论】:

      • 虽然这段代码可以回答这个问题,但最好包含一些上下文,解释它是如何工作的以及何时使用它。从长远来看,纯代码的答案没有用处。
      • 您可以按左下角的“编辑”来编辑您的答案。来吧,试试看:)
      猜你喜欢
      • 2012-06-26
      • 2013-03-10
      • 2016-08-28
      • 2013-07-25
      相关资源
      最近更新 更多