PHP bindec() 函数

定义和用法

bindec() 函数将二进制数转换为十进制数。

提示:如需将十进制转换为二进制,请使用 decbin() 函数。

语法

bindec(string $binary_string): int|float
参数 描述
binary_string 必需。规定要转换的二进制字符串

返回值

bindec() 返回二进制字符串的十进制值。

注意:从 PHP 7.4.0 开始,传入无效字符将产生弃用通知。结果会被静默地解释为遇到无效字符后的二进制数字部分。

PHP 版本

  • PHP 4+
  • PHP 5+
  • PHP 7+
  • PHP 8+

示例

示例 1:基本用法

<?php
echo bindec("110011") . "<br>";
echo bindec("000110011") . "<br>";
echo bindec("111");
?>

输出:

51
51
7

示例 2:处理大数

<?php
$large_binary = "1111111111111111111111111111111";
echo bindec($large_binary);
?>

输出:

2147483647

示例 3:实际应用 - IP地址转换

<?php
// 将二进制IP地址转换为十进制
function binaryIPToDecimal($binaryIP) {
    $segments = explode('.', $binaryIP);
    $decimalIP = [];

    foreach ($segments as $segment) {
        $decimalIP[] = bindec($segment);
    }

    return implode('.', $decimalIP);
}

$binaryIP = "11000000.10101000.00000001.00000001";
echo "二进制IP: " . $binaryIP . "<br>";
echo "十进制IP: " . binaryIPToDecimal($binaryIP);
?>

输出:

二进制IP: 11000000.10101000.00000001.00000001
十进制IP: 192.168.1.1

相关函数

注意事项

重要:
  • 该函数可以转换的最大数值取决于平台。32位系统最大为 2147483647 (二进制 31位1)。64位系统最大为 9223372036854775807 (二进制 63位1)。
  • 如果 binary_string 参数不是有效的二进制字符串,可能会产生意外结果。
  • 该函数会忽略字符串中非 0 和 1 的字符(除了前导空格)。