Funções de conversão de bases numéricas em PHP

Conversão de bases numéricas em PHP

Muitas vezes precisamos realizar conversões de bases numéricas em dados recebidos pelo script PHP. Por sorte, a linguagem possui uma série de funções internas que permitem realizar essas conversões de forma muito simples e rápida.

Vamos mostrar nessa lição como utilizar as funções do PHP para conversão entre as bases decimal, binária, hexadecimal e octal, além de uma função para conversão entre qualquer base numérica, até a base 36.

Função decoct – Converter de decimal para octal

Sintaxe:

string decoct($n)

Essa função retorna uma string contendo o valor de n (inteiro) convertido para octal. O valor-limite para conversão é 4294967295.

Exemplo: converter o número 35 para octal:

$n = 35;
$octal = decoct($n);
echo($n . " em octal equivale a " . $octal . "\n");

Função octdec – Converter um número octal para o sistema decinal

Sintaxe:

number octdec(string $octal)

$octal é a string que representa o valor octal a ser convertido em decimal.

Exemplo: converter o número 777 octal em decimal:

$octal = '777';
$n = octdec($octal);
echo($octal . " em decimal equivale a " . $n . "\n");

Se o número a converter ultrapassar o limite de inteiro da plataforma (em decimal), ele será retornado como float.

Função decbin – Converter um número decimal para binário

Sintaxe:

string decbin(int $n)

A função decbin retorna uma string que representa o valor de $n convertido para o sistema binário. O maior valor que pode ser convertido é 4294967295 em decimal.

Exemplo: Converter o número decimal 1023 em binário:

$n = 1023;
$binario = decbin($n);
echo($n . " em binário equivale a " . $binario . "\n");

Função bindec – Converter um número binário em decimal

Sintaxe:

number bindec (string $binario)

Essa função retorna o equivalente decimal de uma string que representa um número decimal.

Exemplo: Converter o número binário 101101 em decimal:

$binario = '101101';
$n = bindec($binario);
echo($binario . " em decimal equivale a " . $n . "\n");

Função hexdec – Converter um número hexadecimal para decimal

Sintaxe:

number hexdec(string $hexadecimal)

A função hexdec retorna o equivalente decimal de uma string que representa um número hexadecimal.
Essa função ignora qualquer caractere não hexadecimal que for encontrado.

Exemplo: Converter o número hexadecimal AB23h em binário:

$hexadecimal = 'AB23';
$n = hexdec($hexadecimal);
echo($hexadecimal . " em decimal equivale a " . $n . "\n");

Função dechex – Converter um número decimal em uma string hexadecimal

Sintaxe:

string dechex (int $n)

Essa função retorna uma string que representa o valor de $n convertido para o sistema hexadecimal. O maior valor que pode ser convertido é 4294967295 em decimal.

Exemplo: Converter o número decimal 1563 em hexadecimal:

$n = 1563;
$hexadecimal = dechex($n);
echo($n . " em hexadecimal equivale a " . $hexadecimal . "\n");

Função base_convert – Converter números entre bases arbitrárias

A função base_convert permite converter um número entre bases arbitrárias.

Sintaxe:

string base_convert(string $numero, int $daBase, int $paraBase)

Essa função retorna uma string contendo um número representado na base $paraBase. Em $daBase informamos a base atual do número.

A função suporta as bases numéricas de 2 a 36

Exemplo:
Convertendo o número hexadecimal AFC3h para a base 9:

$hexadecimal = 'AFC3';
$numBase9 = base_convert($hexadecimal, 16, 9);
echo($hexadecimal . " na base 9 equivale a " . $numBase9 . "\n");

Mais informações sobre as funções de conversão de bases numéricas podem ser obtidas na página oficial do PHP.

Anterior: Introdução às Funções em PHP

Sobre Fábio dos Reis (1223 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

Escreva um comentário

Seu e-mail não será divulgado


*