gpt4 book ai didi

php - PHP二进制到十六进制,前导零

转载 作者:行者123 更新时间:2023-12-02 06:36:44 25 4
gpt4 key购买 nike

我有以下代码:

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

哪个工作正常,我得到的值为c00。

但是,当我尝试转换000000010000时,将获得值“10”。我真正想要的是所有前导零,因此最终结果可以是“010”。

我该怎么做呢?

编辑:我应该指出,二进制数的长度可以变化。因此$ binary可能是00001000,结果为08。

最佳答案

您可以在必要数量的前导零之前加上以下内容:

$hex = str_repeat("0", floor(strspn($binary, "0") / 4)).$hex;

这是做什么的?
  • 它使用strspn找出您的二进制字符串有多少个前导零。
  • 将其转换为十六进制表示形式所需的前导零的数量。整个4个前导零位的组需要转换为一个零十六进制数字;任何剩余的零位已经被编码在输出的第一个非零十六进制数字中,因此我们使用floor将其淘汰。
  • 使用str_repeat将很多零添加到结果中。

  • 请注意,如果输入位数不是4的倍数,则可能导致零十六进制数字比预期的少一。如果有可能,您将需要进行相应的调整。

    关于php - PHP二进制到十六进制,前导零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16576187/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com