Se devi convertire un numero da decimale a ottale (base 8), vengono in mente due funzioni se utilizzi MySQL. Una funzione è specifica per eseguire conversioni ottali, l'altra è per eseguire conversioni tra basi diverse. Questi sono i seguenti:
OCT()- Questa funzione viene utilizzata specificamente per la conversione da decimale a ottale.
CONV()- Questa funzione ha uno scopo più generale. Consente di specificare la base del numero originale e il risultato. In altre parole, puoi convertire da qualsiasi base, a qualsiasi base (purché ogni base sia compresa tra 2 e 36).
Ulteriori informazioni su queste due funzioni di seguito.
La funzione OCT()
Come accennato, questa funzione è specifica per la conversione da decimale a ottale. La sua sintassi è questa:
OCT(N)
Dove N è il numero decimale che vuoi convertire in ottale.
Ecco un esempio:
SELECT OCT(8);
Risultato:
+--------+ | OCT(8) | +--------+ | 10 | +--------+
Il risultato è 10 perché è l'equivalente ottale di 8 nel sistema decimale.
La funzione CONV()
Questa è una funzione più generica che ti permette di specificare, non solo il sistema di numerazione in cui convertire in , ma anche il sistema di numerazione da cui convertire da .
Sintassi:
CONV(N,from_base,to_base)
Dove N è il numero da convertire, from_base è la base da cui convertire e to_base è la base in cui convertire.
Quindi possiamo riscrivere l'esempio precedente in questo:
SELECT CONV(8, 10, 8);
Risultato:
+----------------+ | CONV(8, 10, 8) | +----------------+ | 10 | +----------------+
E otteniamo lo stesso risultato perché convertiamo il numero da base 10 a base 8.
Un vantaggio di CONV() la funzione è che puoi convertire tra altre basi. Ad esempio, avremmo potuto facilmente convertire da, diciamo, base 8 a base 16.
Cos'è Octal?
Octal è un sistema di notazione numerica che ha 8 come base. Questo è in contrasto con il decimale, che ha 10 come base.
In decimale, contiamo fino a 9, quindi ricominciamo aggiungendo uno zero dopo la prima cifra (ad es. dopo 9 viene 10, che è 1 con uno zero aggiunto).
In ottale (base 8), invece, contiamo solo fino a 7 prima di ricominciare e aggiungere uno zero. Quindi 10 in ottale è l'equivalente di 8 in decimale.
Ecco una tabella da dimostrare:
| Decimale (Base 10) | Ottale (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 |