PHP进制转换函数详解:十进制、二进制、八进制与十六进制互转

咖啡半糖
咖啡半糖
发布时间:2026-10-15| 6人浏览过
原创

本文将梳理PHP中核心进制转换函数,涵盖十进制、二进制、八进制及十六进制之间的相互转换。通过解析 decbin、decoct、dechex、bindec、hexdec 及 base_convert 等函数的用法、参数及限制条件,帮助开发者在实际编程中高效处理数据格式转换。

十进制与其他进制转换

在处理数字表示时,常需要将十进制数转换为其他进制。PHP 提供了专用函数来实现这一需求,这些函数均接受整数作为输入,并返回字符串形式的结果。

第1步:十进制转二进制使用 decbin()

目的:将十进制整数转换为二进制字符串表示。 入口:直接使用 decbin() 函数。 动作:调用 echo decbin(12); 输出 1100,或 echo decbin(26); 输出 11010。 重要参数:函数签名 string decbin ( int number )。 完成状态:返回包含给定数字二进制表示的字符串。注意,该函数能转换的最大十进制数值为 4294967295(即 32 位全 1)。

第2步:十进制转八进制使用 decoct()

目的:将十进制整数转换为八进制字符串。 入口:使用 decoct() 函数。 动作:执行 echo decoct(15); 得到 17,echo decoct(264); 得到 410。 重要参数:函数签名 string decoct ( int number )。 完成状态:返回八进制表示字符串。最大可转换值为十进制 4294967295,对应结果为 "37777777777"。

第3步:十进制转十六进制使用 dechex()

目的:将十进制整数转换为小写十六进制字符串。 入口:使用 dechex() 函数。 动作:运行 echo dechex(10); 输出 a,echo dechex(47); 输出 2f。 重要参数:函数签名 string dechex ( int number )。 完成状态:返回十六进制字符串。最大可转换值同为十进制 4294967295,结果为 "ffffffff"。

其他进制转十进制

当需要从非十进制字符串还原为数值时,可使用对应的转换函数。这些函数通常接受字符串类型参数。

第1步:二进制转十进制使用 bindec()

目的:将二进制字符串转换为十进制数值。 入口:使用 bindec() 函数。 动作:echo bindec('110011'); 输出 51;前导零不影响结果,bindec('000110011') 同样输出 51。 重要参数:函数签名 number bindec ( string binary_string )。 完成状态:返回十进制整数值(或 float)。可转换最大数为 31 位二进制数(十进制 2147483647)。自 PHP 4.1.0 起,支持大数值,超出范围时返回 float 类型。

第2步:八进制转十进制使用 octdec()

目的:将八进制字符串转换为十进制数值。 入口:使用 octdec() 函数。 动作:echo octdec('77'); 输出 63;可组合使用 echo octdec(decoct(45)); 验证一致性,输出 45。 重要参数:函数签名 number octdec ( string octal_string )。 完成状态:返回十进制数值。最大可转换值为 17777777777(八进制),即十进制 2147483647。超过此范围时,同 bindec 一样,PHP 4.1.0+ 会返回 float 类型。

第3步:十六进制转十进制使用 hexdec()

目的:将十六进制字符串转换为十进制数值。 入口:使用 hexdec() 函数。 动作:var_dump(hexdec("See")); 和 var_dump(hexdec("ee")); 均输出 int(238);hexdec("that") 忽略无效字符 't', 'h',仅计算 'a',输出 int(10)。 重要参数:函数签名 number hexdec ( string hex_string )。 完成状态:返回十进制数值。函数会自动将遇到的非十六进制字符替换为 0(左侧零被忽略,右侧零计入)。最大转换值为十进制 2147483647,超限后返回 float。

二进制数据与十六进制互转

在处理原始二进制数据流时,常需将其转为可读的十六进制字符串,反之亦然。

第1步:二进制数据转十六进制字符串使用 bin2hex()

目的:将二进制字符串转换为 ASCII 十六进制表示。 入口:使用 bin2hex() 函数。 动作:虽然该函数直接操作字节串,但若仅处理纯二进制数字串,可结合 dechex(bindec($binary)) 思路理解。直接对二进制串 $binary = "11111001"; 使用逻辑:$hex = dechex(bindec($binary)); 输出 f9。 注意:原生 bin2hex(str) 是将字节数组转 hex 字符串,若输入是二进制数字符串,需先 bindec 再 dechex 或直接使用 bin2hex 处理原始字节。 重要参数:函数签名 string bin2hex ( string str )。 完成状态:返回 ASCII 十六进制字符串,采用高四位字节优先的方式转换。

任意进制通用转换

对于更灵活的进制间转换,PHP 提供了通用的转换函数。

第1步:任意进制间转换使用 base_convert()

目的:在任意基数(2 到 36)之间转换数字字符串。 入口:使用 base_convert() 函数。 动作:将十六进制 $hexadecimal = 'A37334'; 转为二进制:echo base_convert($hexadecimal, 16, 2);,输出 101000110111001100110100。 重要参数:函数签名 string base_convert ( string number, int frombase, int tobase )。
其中 frombase 和 tobase 必须在 2 到 36 之间。高于十进制的数字用字母 a-z 表示(a=10, ..., z=35)。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。