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 |