(PHP 4, PHP 5)
bindec — Binario a decimal
   Devuelve el equivalente decimal del número binario representado por
   el argumento binary_string.
  
bindec() convierte un número binario a un integer o, si es necesario por razones de tamaño, a un float.
   bindec() interpreta todos los valores de
   binary_string como enteros sin signo.
   Esto es debido a que bindec() considera 
   al bit más significativo como otro orden de magnitud 
   en lugar de como el bit de signo.
  
binary_stringEl string binario a convertir
Este parámetro debe ser un string. Cualquier otro tipo de dato empleado puede producir resultados inesperados.
   El valor decimal de binary_string
  
| Versión | Descripción | 
|---|---|
| 4.1.0 | Esta función puede ahora convertir números que son demasiado grandes para encajar en el tipo integer de la plataforma, siendo devueltos los valores más grandes, en este caso, como float. | 
Ejemplo #1 Ejemplo de bindec()
<?php
echo bindec('110011') . "\n";
echo bindec('000110011') . "\n";
echo bindec('111');
?>
El resultado del ejemplo sería:
51 51 7
Ejemplo #2 bindec() interpreta las entradas como enteros sin signo
<?php
/*
 * La lección de este ejemplo es el resultado 
 * más que el código de PHP en sí.
 */
$magnitude_lower = pow(2, (PHP_INT_SIZE * 8) - 2);
p($magnitude_lower - 1);
p($magnitude_lower, '¿Ve el incremento?  Obsérvelo la próxima vez...');
p(PHP_INT_MAX, 'PHP_INT_MAX');
p(~PHP_INT_MAX, 'interpretado como uno más que PHP_INT_MAX');
if (PHP_INT_SIZE == 4) {
    $nota = 'interpretado como el mayor entero sin signo';
} else {
    $nota = 'interpretado como el mayor entero sin signo
              (18446744073709551615) aunque sesgado por la precisión del float';
}
p(-1, $nota);
function p($entrada, $nota = '') {
    echo "entrada:      $entrada\n";
    $formato = '%0' . (PHP_INT_SIZE * 8) . 'b';
    $bin = sprintf($formato, $entrada);
    echo "binario:      $bin\n";
    ini_set('precision', 20);  // Para la legibilidad en bloques de 64 bits.
    $dec = bindec($bin);
    echo 'bindec():     ' . $dec . "\n";
    if ($nota) {
        echo "NOTA:         $nota\n";
    }
    echo "\n";
}
?>
El resultado del ejemplo en equipos de 32 bits sería:
entrada: 1073741823 binario: 00111111111111111111111111111111 bindec(): 1073741823 entrada: 1073741824 binario: 01000000000000000000000000000000 bindec(): 1073741824 NOTA: ¿Ve el incremento? Obsérvelo la próxima vez... entrada: 2147483647 binario: 01111111111111111111111111111111 bindec(): 2147483647 NOTA: PHP_INT_MAX entrada: -2147483648 binario: 10000000000000000000000000000000 bindec(): 2147483648 NOTA: interpretado como uno más que PHP_INT_MAX entrada: -1 binario: 11111111111111111111111111111111 bindec(): 4294967295 NOTA: interpretado como el mayor entero sin signo
El resultado del ejemplo en equipos de 64 bits sería:
entrada:      4611686018427387903
binario:      0011111111111111111111111111111111111111111111111111111111111111
bindec():     4611686018427387903
entrada:      4611686018427387904
binario:      0100000000000000000000000000000000000000000000000000000000000000
bindec():     4611686018427387904
NOTA:         ¿Ve el incremento?  Obsérvelo la próxima vez...
entrada:      9223372036854775807
binario:      0111111111111111111111111111111111111111111111111111111111111111
bindec():     9223372036854775807
NOTA:         PHP_INT_MAX
entrada:      -9223372036854775808
binario:      1000000000000000000000000000000000000000000000000000000000000000
bindec():     9223372036854775808
NOTA:         interpretado como uno más que PHP_INT_MAX
entrada:      -1
binario:      1111111111111111111111111111111111111111111111111111111111111111
bindec():     18446744073709551616
NOTA:         interpretado como el mayor entero sin signo
              (18446744073709551615) aunque sesgado por la precisión del float