Documentación offline PHP master

bindec

master Ver versión oficial en línea Licencia CC-BY-3.0Descargado el 2026-08-02

En esta página

bindec

Convierte de binario a decimal

Descripción#

bindec(string $binary_string): int
```php

Devuelve la conversión de un número binario representado por la cadena `binary_string` a decimal.

`bindec` convierte un número binario en un `int`, o, si es necesario por razones de tamaño, en un `float`.

`bindec` interpreta todos los valores `binary_string` como enteros no firmados. Esto se debe a que la función `bindec` ve el primer bit como otro orden de magnitud en lugar de como el bit de signo.

## Parámetros

`binary_string`  
La cadena binaria a convertir. Cualquier carácter inválido en `binary_string` es ignorado silenciosamente. A partir de PHP 7.4.0, proporcionar caracteres inválidos está deprecado.

> [!WARNING]
> Este parámetro debe ser un `string`. El uso de otro tipo de datos produce resultados inesperados.

## Valores devueltos

El valor decimal de `binary_string`

## Historial de cambios

| Versión | Descripción |
|----|----|
| 7.4.0 | Proporcionar caracteres inválidos generará ahora una advertencia deprecada. El resultado se calculará siempre como si los caracteres inválidos no existieran. |

## Ejemplos

Ejemplo con `bindec`
El ejemplo anterior mostrará:

    51
    51
    7

`bindec` interpreta la entrada como un entero no firmado

```php

Resultado del ejemplo anterior en una máquina de 32 bits:

entrada :        1073741823
binario :       00111111111111111111111111111111
bindec() :     1073741823

entrada :        1073741824
binario :       01000000000000000000000000000000
bindec():     1073741824
Nota :         ¿Ha visto el cambio? Esté atento la próxima vez...

entrada :        2147483647
binario :       01111111111111111111111111111111
bindec():     2147483647
Nota :         PHP_INT_MAX

entrada :        -2147483648
binario :       10000000000000000000000000000000
bindec():     2147483648
Nota :         interpretado como superior a PHP_INT_MAX

entrada :        -1
binario :       11111111111111111111111111111111
bindec():     4294967295
Nota :         interpretado como el mayor entero no firmado

Resultado del ejemplo anterior en una máquina de 64 bits:

entrada :        4611686018427387903
binario :       0011111111111111111111111111111111111111111111111111111111111111
bindec() :     4611686018427387903

entrada :        4611686018427387904
binario :       0100000000000000000000000000000000000000000000000000000000000000
bindec() :     4611686018427387904
Nota :         ¿Ha visto el cambio? Esté atento la próxima vez...

entrada :        9223372036854775807
binario :       0111111111111111111111111111111111111111111111111111111111111111
bindec() :     9223372036854775807
Nota :         PHP_INT_MAX

entrada :        -9223372036854775808
binario :       1000000000000000000000000000000000000000000000000000000000000000
bindec() :     9223372036854775808
Nota :         interpretado como superior a PHP_INT_MAX

entrada :        -1
binario :       1111111111111111111111111111111111111111111111111111111111111111
bindec() :     18446744073709551616
Nota :         interpretado como el mayor entero no firmado
              (18446744073709551615) pero distorsionado por la precisión de los flotantes

Notas#

[!NOTE] La función puede convertir números que son demasiado grandes para caber en un tipo int, en cuyo caso estos valores se devuelven como float.

Véase también#

decbin, octdec, hexdec, base_convert