Ao trabalhar com MySQL, você pode usar o
CONV()
função para converter um número de uma base para outra. São necessários três argumentos; o número a ser convertido, a base original e a base para a qual você deseja convertê-lo. Sintaxe
Aqui está a sintaxe oficial:
CONV(N,from_base,to_base)
Onde
from_base
é a base original e to_base
é a base na qual você deseja converter o número. Exemplo – Decimal para Binário
Aqui está um exemplo de conversão de um número de base 10 (decimal) para base 2 (binário):
SELECT CONV(3, 10, 2);
Resultado:
+----------------+ | CONV(3, 10, 2) | +----------------+ | 11 | +----------------+
Assim, podemos ver que
3
em decimal converte para 11
em binário. No caso de binário, o MySQL também tem um
BIN()
função que permite converter de decimal para binário. Portanto, o exemplo acima é equivalente ao seguinte:SELECT BIN(3);
Resultado:
+--------+ | BIN(3) | +--------+ | 11 | +--------+
Exemplo – Binário para Decimal
No entanto, um benefício do
CONV()
função é que ele também permite que você converta de volta para o outro lado. Assim, poderíamos mudar o exemplo acima para converter de binário para decimal:SELECT CONV(11, 2, 10);
Resultado:
+-----------------+ | CONV(11, 2, 10) | +-----------------+ | 3 | +-----------------+
Exemplo – Decimal para Hexadecimal
Neste exemplo, convertemos de decimal para hexadecimal:
SELECT CONV(13, 10, 16);
Resultado:
+------------------+ | CONV(13, 10, 16) | +------------------+ | D | +------------------+
Conforme demonstrado aqui,
13
em base 10 (decimal) converte em D
na base 16 (hexadecimal). Aqui está outro exemplo, desta vez usando um número maior:
SELECT CONV(12734, 10, 16);
Resultado:
+---------------------+ | CONV(12734, 10, 16) | +---------------------+ | 31BE | +---------------------+
Semelhante ao
BIN()
função para conversões binárias, o MySQL também tem um HEX()
função que converte um número de decimal para hexadecimal. Assim, o exemplo anterior poderia ser reescrito da seguinte forma:SELECT HEX(12734);
Resultado:
+------------+ | HEX(12734) | +------------+ | 31BE | +------------+
Exemplo – Base 36
O
CONV()
A função aceita uma base mínima de 2 (binário) e uma base máxima de 36. Aqui está um exemplo de conversão da base 10 para a base 36:SELECT CONV(12734, 10, 36);
Resultado:
+---------------------+ | CONV(12734, 10, 36) | +---------------------+ | 9TQ | +---------------------+