Si necesita convertir un número de decimal a octal (base 8), se le ocurren dos funciones si está utilizando MySQL. Una función es específicamente para hacer conversiones octales, la otra es para hacer conversiones entre diferentes bases. Estos son los siguientes:
OCT()
- Esta función se usa específicamente para convertir de decimal a octal.
CONV()
- Esta función tiene un propósito más general. Le permite especificar la base del número original y el resultado. En otras palabras, puede convertir de cualquier base a cualquier base (siempre que cada base esté entre 2 y 36).
Más sobre estas dos funciones a continuación.
La función OCT()
Como se mencionó, esta función es específicamente para convertir de decimal a octal. Su sintaxis es así:
OCT(N)
Donde N
es el número decimal que desea convertir a octal.
He aquí un ejemplo:
SELECT OCT(8);
Resultado:
+--------+ | OCT(8) | +--------+ | 10 | +--------+
El resultado es 10
porque ese es el equivalente octal de 8 en el sistema decimal.
La función CONV()
Esta es una función de propósito más general que le permite especificar, no solo el sistema de numeración para convertir a , sino también el sistema de numeración para convertir desde .
Sintaxis:
CONV(N,from_base,to_base)
Donde N
es el número a convertir, from_base
es la base para convertir y to_base
es la base para convertir.
Entonces podemos reescribir el ejemplo anterior a esto:
SELECT CONV(8, 10, 8);
Resultado:
+----------------+ | CONV(8, 10, 8) | +----------------+ | 10 | +----------------+
Y obtenemos el mismo resultado porque convertimos el número de base 10 a base 8.
Un beneficio de CONV()
función es que se puede convertir entre otras bases. Por ejemplo, podríamos haber convertido fácilmente de base 8 a base 16.
¿Qué es octal?
Octal es un sistema de notación numérica que tiene 8 como base. Esto contrasta con decimal, que tiene 10 como base.
En decimal, contamos hasta 9, luego comenzamos de nuevo agregando un cero después del primer dígito (por ejemplo, después de 9 viene 10, que es 1 con un cero agregado).
Sin embargo, en octal (base 8), solo contamos hasta 7 antes de comenzar de nuevo y agregar un cero. Así que 10 en octal es el equivalente a 8 en decimal.
Aquí hay una tabla para demostrar:
Decimal (Base 10) | Octubre (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 |