W3docs

decbin()

Aprenda a usar a função decbin() em PHP para converter números decimais em representações binárias como string.

A função decbin() converte um inteiro decimal (base 10) em sua representação binária (base 2) e a retorna como uma string. Ela é o complemento de bindec(), que realiza a conversão inversa. Esta página aborda a sintaxe, o valor de retorno, as particularidades com números negativos e como formatar a saída.

Sintaxe

decbin(int $num): string
  • $num — o inteiro decimal a converter. Floats são silenciosamente truncados para inteiros, e booleanos são convertidos (true torna-se 1).
  • Valor de retorno — uma string de caracteres 0 e 1. Note que é uma string, não um número, portanto zeros à esquerda nunca são produzidos e o resultado é seguro para concatenação ou preenchimento.

Exemplo Básico

php— editable, runs on the server

Atribuímos um valor decimal, passamo-lo para decbin() e exibimos a string retornada. O decimal 10 é 1010 em binário (8 + 2).

Convertendo Vários Valores

Como a função retorna uma string simples, você pode formatá-la diretamente. Veja algumas conversões comuns:

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

255 é o maior valor que cabe em um byte, por isso ele mapeia para oito bits 1.

Preenchendo a Saída com Largura Fixa

decbin() nunca adiciona zeros à esquerda, portanto decbin(5) retorna "101", não "00000101". Quando você precisa de uma largura de bits fixa (por exemplo, para exibir cada valor como um byte), envolva-o em str_pad():

<?php
$value = 5;

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

Isso funciona exatamente porque o valor de retorno é uma string.

Números Negativos

PHP não possui tratamento dedicado de bit de sinal aqui: um inteiro negativo é interpretado como um valor sem sinal usando o complemento de dois para a largura inteira da plataforma. Em um build de 64 bits, decbin(-1) retorna 64 uns:

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

Se você precisar de uma largura fixa e previsível, mascare o valor primeiro — por exemplo, decbin(-1 & 0xFF) resulta em 11111111 (visão de 8 bits).

Ida e Volta com bindec()

decbin() e bindec() são inversas, portanto converter um número para binário e de volta retorna o valor original:

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

echo $back; // 42
?>

Quando Usar?

  • Inspecionar ou exibir padrões de bits ao depurar operações bit a bit (&, |, ^, <<, >>).
  • Construir representações de string binárias para ensino, registro ou codificação simples de dados.
  • Trabalhar com bitmasks de permissão/flag onde visualizar os bits individuais é útil.

Funções Relacionadas

PHP inclui uma família de auxiliares de conversão de base. Escolha o que corresponde à sua base de origem e destino:

Conclusão

A função decbin() converte um inteiro decimal em uma string binária. Lembre-se de três coisas: o resultado é uma string (portanto use str_pad() para larguras fixas), números negativos são exibidos em complemento de dois para toda a largura do inteiro, e bindec() inverte a conversão.

Prática

Prática
Qual é o propósito da função decbin() em PHP?
Qual é o propósito da função decbin() em PHP?
Was this page helpful?