W3docs

decbin()

Aprende a usar la función decbin() en PHP para convertir números decimales a su representación binaria en forma de string.

La función decbin() convierte un entero decimal (base 10) en su representación binaria (base 2) y la devuelve como un string. Es la contraparte de bindec(), que realiza la conversión inversa. Esta página cubre la sintaxis, el valor de retorno, los detalles sobre números negativos y cómo formatear el resultado.

Sintaxis

decbin(int $num): string
  • $num — el entero decimal a convertir. Los números flotantes se truncan silenciosamente a enteros, y los boolean se convierten (true se convierte en 1).
  • Valor de retorno — un string de caracteres 0 y 1. Nótese que es un string, no un número, por lo que nunca se producen ceros iniciales y el resultado es seguro para concatenar o rellenar.

Ejemplo básico

php— editable, runs on the server

Asignamos un valor decimal, lo pasamos a decbin() e imprimimos el string devuelto. El decimal 10 es 1010 en binario (8 + 2).

Conversión de varios valores

Dado que la función devuelve un string simple, puedes formatearlo directamente. Aquí hay algunas conversiones comunes:

<?php
echo decbin(0);   // 0
echo "\n";
echo decbin(1);   // 1
echo "\n";
echo decbin(255); // 11111111
echo "\n";
echo decbin(256); // 100000000
?>

255 es el valor más grande que cabe en un byte, razón por la cual se mapea a ocho bits 1.

Rellenar el resultado a un ancho fijo

decbin() nunca añade ceros iniciales, por lo que decbin(5) devuelve "101", no "00000101". Cuando se desea un ancho de bits fijo (por ejemplo, para mostrar cada valor como un byte), envuélvelo en str_pad():

<?php
$value = 5;

// Pad to 8 bits with leading zeros
echo str_pad(decbin($value), 8, "0", STR_PAD_LEFT); // 00000101
?>

Esto funciona precisamente porque el valor de retorno es un string.

Números negativos

PHP no tiene manejo dedicado de bit de signo aquí: un entero negativo se interpreta como un valor sin signo usando el complemento a dos en función del ancho entero de la plataforma. En una compilación de 64 bits, decbin(-1) devuelve 64 unos:

<?php
echo decbin(-1);
// 1111111111111111111111111111111111111111111111111111111111111111
?>

Si necesitas un ancho fijo y predecible, enmascara el valor primero; por ejemplo, decbin(-1 & 0xFF) produce 11111111 (una vista de 8 bits).

Ciclo de ida y vuelta con bindec()

decbin() y bindec() son inversas entre sí, por lo que convertir un número a binario y de vuelta devuelve el valor original:

<?php
$n = 42;
$binary = decbin($n);     // "101010"
$back = bindec($binary);  // 42

echo $back; // 42
?>

¿Cuándo usarla?

  • Inspeccionar o mostrar patrones de bits al depurar operaciones a nivel de bits (&, |, ^, <<, >>).
  • Construir representaciones de string binarias para enseñanza, registro o codificación simple de datos.
  • Trabajar con máscaras de bits de permisos/indicadores donde ver los bits individuales resulta útil.

Funciones relacionadas

PHP incluye una familia de ayudantes de conversión de bases. Elige el que coincida con tu base de origen y destino:

Conclusión

La función decbin() convierte un entero decimal en un string binario. Recuerda tres cosas: el resultado es un string (por lo que debes usar str_pad() para anchos fijos), los números negativos se muestran en complemento a dos a lo largo del ancho entero completo, y bindec() invierte la conversión.

Práctica

Práctica
¿Cuál es el propósito de la función decbin() en PHP?
¿Cuál es el propósito de la función decbin() en PHP?
Was this page helpful?