【问题标题】:Problem when converting between bases and formating the output在基础之间转换和格式化输出时出现问题
【发布时间】:2021-10-29 03:14:09
【问题描述】:

目标是将 0 到 255 之间的十进制基数转换为十六进制基数。十六进制基数必须以 XX 形式书写。所以例如 60_10=3c_16,还有 5_10=05_16。

例如:

以 dec 为基数的 60 是 3c 以十六进制为基数。

以下代码有效:

<?php
echo dechex(60);
?>

输出为:3c

宾果游戏。

现在:为什么下面代码的输出是 03 而不是 3c?我该怎么做才能使它成为 3c?

<?php
$br=60;
echo sprintf("%02x", dechex($br));
?>

【问题讨论】:

    标签: php hex decimal


    【解决方案1】:

    当你使用

    sprintf("%02x", dechex($br));
    

    3cdechex()的结果),格式中的x表示

    x 参数被视为整数并呈现为十六进制 数字(小写字母)。

    所以它需要一个整数并将其转换为3

    x 为您进行转换,无需dechex.....

    echo sprintf("%02x", $br);
    

    【讨论】:

      【解决方案2】:

      正确使用

      https://www.php.net/sprintf

      当您将 dec 值传递给函数时,它会起作用。

      <?php
      echo sprintf('%02x', 60);
      

      输出

      3c
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-05-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-20
        相关资源
        最近更新 更多