Se você precisar converter um número de decimal para octal (base 8), duas funções vêm à mente se você estiver usando o MySQL. Uma função é especificamente para fazer conversões octais, a outra é para fazer conversões entre diferentes bases. Estes são os seguintes:
OCT()
- Esta função é usada especificamente para converter de decimal para octal.
CONV()
- Esta função tem um propósito mais geral. Ele permite que você especifique a base do número original e o resultado. Em outras palavras, você pode converter de qualquer base para qualquer base (desde que cada base esteja entre 2 e 36).
Mais sobre essas duas funções abaixo.
A função OCT()
Como mencionado, esta função é especificamente para converter de decimal para octal. Sua sintaxe fica assim:
OCT(N)
Onde
N
é o número decimal que você deseja converter para octal. Aqui está um exemplo:
SELECT OCT(8);
Resultado:
+--------+ | OCT(8) | +--------+ | 10 | +--------+
O resultado é
10
porque esse é o equivalente octal de 8 no sistema decimal. A função CONV()
Esta é uma função de propósito mais geral que permite especificar, não apenas o sistema de numeração para converter para , mas também o sistema de numeração para converter de .
Sintaxe:
CONV(N,from_base,to_base)
Onde
N
é o número a ser convertido, from_base
é a base para converter e to_base
é a base para converter. Assim, podemos reescrever o exemplo anterior para isso:
SELECT CONV(8, 10, 8);
Resultado:
+----------------+ | CONV(8, 10, 8) | +----------------+ | 10 | +----------------+
E obtemos o mesmo resultado porque convertemos o número da base 10 para a base 8.
Um benefício do
CONV()
função é que você pode converter entre outras bases. Por exemplo, poderíamos facilmente ter convertido da base 8 para a base 16. O que é Octal?
Octal é um sistema de notação numérica que tem 8 como base. Isso contrasta com o decimal, que tem 10 como base.
Em decimal, contamos até 9 e começamos novamente adicionando um zero após o primeiro dígito (por exemplo, depois de 9 vem 10, que é 1 com um zero adicionado a ele).
Em octal (base 8), no entanto, contamos apenas até 7 antes de começar novamente e adicionar um zero. Então 10 em octal é o equivalente a 8 em decimal.
Aqui está uma tabela para demonstrar:
Decimal (Base 10) | Octal (Base 8) |
---|---|
1 | 1 |
2 | 2 |
3 | 3 |
4 | 4 |
5 | 5 |
6 | 6 |
7 | 7 |
8 | 10 |
9 | 11 |
10 | 12 |
11 | 13 |
12 | 14 |
13 | 15 |
14 | 16 |
15 | 17 |
16 | 20 |
17 | 21 |
18 | 22 |
19 | 23 |
20 | 24 |