首页 文章

如何在PHP7中正确地将HEX转换为BIN?

提问于
浏览
-1

我试图将HEX值“0000”转换为BIN值 . 在数学中:(0000)16 =(0000 0000 0000 0000)2

但是当我试图使用时

$hex = '0000';
echo base_convert ($hex, 16, 2);

我得到0 0000 0000 0000 0000 .

它看起来一样但不是 . 在我的场景中,16位表示保存为HEX值的数字输出的状态 .

我需要更改什么才能使其按预期工作?

2 回答

  • 0

    您将获得0,因为 base_convert 不会在结果字符串中输出比表示数字所需的更多数字 . 相反,使用hexdec将字符串转换为十进制数,然后使用sprintf使用 %b 转换规范将输出作为16位二进制数字:

    $hex = '0000';
    $bin = sprintf("%016b", hexdec($hex));
    echo $bin;
    

    输出:

    0000000000000000
    

    如果你真的想要每个4位块之间的空格,你可以使用str_splitimplode,例如

    echo implode(' ', str_split($bin, 4)) . "\n";
    

    输出:

    0000 0000 0000 0000
    

    Demo on 3v4l.org

  • 2

    PHP和Js在我的经验中也有同样的问题 . 我曾经检查并在需要的地方添加n 0 .

相关问题