• 技术文章 >后端开发 >PHP问题

    php怎么将数据转为16进制字符串

    青灯夜游青灯夜游2022-08-25 18:28:01原创934

    3种转换方法:1、使用dechex()函数,可以把十进制数转换为十六进制字符串,语法“dechex(指定数据值);”。2、使用base_convert()函数,可以将任意进制值转换为十六进制字符串,语法“base_convert(数据值,原进制,16);”。3、使用bin2hex()函数,可以把ASCII字符的字符串转换为十六进制字符串,语法“bin2hex(数据值)”。

    php入门到就业线上直播课:进入学习

    本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑

    在php中,将数据转为16进制字符串分两种情况:

    不同情况,使用的函数不同。

    情况1:将其他进制的数据转为16进制字符串

    PHP提供两种函数来进行转换:

    1、dechex()函数转换

    dechex() 函数把十进制数转换为十六进制数。

    dechex(number);

    返回值:一个字符串,包含十进制值的十六进制数。

    示例:

    <?php
    echo dechex("30") . "<br>";
    echo dechex("10") . "<br>";
    echo dechex("1587") . "<br>";
    echo dechex("70");
    ?>

    1.png

    说明:

    hexdec() 将一个十六进制字符串转换为十进制数。所能转换的最大数值为 7fffffff,即十进制的 2147483647。PHP 4.1.0 开始,该函数可以处理大数字,这种情况下,它会返回 float 类型。

    hexdec() 将遇到的所有非十六进制字符替换成 0。这样,所有左边的零都被忽略,但右边的零会计入值中。

    2、base_convert()函数转换

    base_convert() 函数在任意进制之间转换数字。

    base_convert(number,frombase,tobase);
    参数描述
    number必需。规定要转换的数。
    frombase必需。规定数字原来的进制。介于 2 和 36 之间(包括 2 和 36)。高于十进制的数字用字母 a-z 表示,例如 a 表示 10,b 表示 11 以及 z 表示 35。
    tobase必需。规定要转换的进制。介于 2 和 36 之间(包括 2 和 36)。高于十进制的数字用字母 a-z 表示,例如 a 表示 10,b 表示 11 以及 z 表示 35。

    当参数 tobase 的值为16时,可将其他进制数转为16进制数。

    示例:

    <?php
    echo base_convert("30", 10, 16) . "<br>";
    echo base_convert("364", 8, 16) . "<br>";
    ?>

    2.png

    说明:

    base_convert()函数也可以实现16进制转其他进制,此时参数frombase的值需要固定值16。

    例16转10:

    <?php
    echo base_convert("1e", 16, 10) . "<br>";
    echo base_convert("a", 16, 10) . "<br>";
    echo base_convert("11ff", 16, 10) . "<br>";
    echo base_convert("cceeff", 16, 10);
    ?>

    3.png

    如果只是想16进制转10进制,还有一个更方便的函数hexdec()

    hexdec() 将一个十六进制字符串转换为十进制数。所能转换的最大数值为 7fffffff,即十进制的 2147483647。PHP 4.1.0 开始,该函数可以处理大数字,这种情况下,它会返回 float 类型。

    hexdec() 将遇到的所有非十六进制字符替换成 0。这样,所有左边的零都被忽略,但右边的零会计入值中。

    <?php
    echo hexdec("1e") . "<br>";
    echo hexdec("a") . "<br>";
    echo hexdec("11ff") . "<br>";
    echo hexdec("cceeff");
    ?>

    4.png

    情况2:将ASCII 字符的字符串转为16进制字符串

    bin2hex() 函数把 ASCII 字符的字符串转换为十六进制值。

    bin2hex(string)

    返回值:返回要转换字符串的十六进制值。

    <?php
    echo bin2hex("Hello!")."<br>";
    echo bin2hex("123")."<br>";
    echo bin2hex("10")."<br>";
    ?>

    5.png

    推荐学习:《PHP视频教程

    以上就是php怎么将数据转为16进制字符串的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:php php字符串
    上一篇:深入了解PHP的垃圾回收机制 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• php怎么对字符串求交集• php怎么实现字符串长度不够前面补0• php怎么将二维数组转为字符串• php怎么判断两字符串是否相等• php怎么判断字符串是否为空
    1/1

    PHP中文网