当前位置: 首页> 最新文章列表> hexdec 与 dechex 实现十进制与十六进制的双向转换

hexdec 与 dechex 实现十进制与十六进制的双向转换

gitbox 2025-05-29

在 PHP 编程中,经常会遇到数值在不同进制之间转换的需求,特别是十进制和十六进制之间的转换。PHP 提供了两个非常方便的内置函数 hexdec()dechex(),分别用于将十六进制数转换为十进制数和将十进制数转换为十六进制数。

1. 十六进制转十进制 — hexdec()

hexdec() 函数接受一个十六进制字符串作为参数,并返回对应的十进制整数。使用时,只需将包含十六进制数的字符串传入即可。

示例代码

<?php
$hex = "1A3F";
$decimal = hexdec($hex);
echo "十六进制数 {$hex} 转换为十进制是: {$decimal}";
?>

输出:

十六进制数 1A3F 转换为十进制是: 6719

2. 十进制转十六进制 — dechex()

dechex() 函数接受一个十进制整数作为参数,并返回对应的十六进制字符串。

示例代码

<?php
$decimal = 6719;
$hex = dechex($decimal);
echo "十进制数 {$decimal} 转换为十六进制是: {$hex}";
?>

输出:

十进制数 6719 转换为十六进制是: 1a3f

注意返回的十六进制字符串默认是小写,如果需要大写,可以结合 strtoupper() 函数:

<?php
$hex = strtoupper(dechex($decimal));
echo "大写十六进制: {$hex}";
?>

输出:

大写十六进制: 1A3F

3. 实用示例:表单输入转换

假设有一个简单的网页表单,用户输入十六进制数,提交后显示对应的十进制数,反之亦然。

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (!empty($_POST['hex'])) {
        $hex = $_POST['hex'];
        $decimal = hexdec($hex);
        echo "<p>十六进制 {$hex} 转换为十进制是 {$decimal}</p>";
    }
    if (!empty($_POST['decimal'])) {
        $decimal = (int)$_POST['decimal'];
        $hex = dechex($decimal);
        echo "<p>十进制 {$decimal} 转换为十六进制是 {$hex}</p>";
    }
}
?>

<form method="post" action="https://gitbox.net/convert.php">
    <label>十六进制: <input type="text" name="hex"></label><br>
    <label>十进制: <input type="text" name="decimal"></label><br>
    <input type="submit" value="转换">
</form>

在这个例子中,用户可以通过表单输入任意十六进制或十进制数,提交后后台会进行对应转换并显示结果。