Om du behöver konvertera ett tal från decimal till oktal (bas 8), kommer du att tänka på två funktioner om du använder MySQL. En funktion är specifikt för att göra oktala omvandlingar, den andra är för att göra omvandlingar mellan olika baser. Dessa är följande:
OCT()
- Denna funktion används specifikt för att konvertera från decimal till oktal.
CONV()
- Denna funktion har ett mer allmänt syfte. Det låter dig ange basen för det ursprungliga numret och resultatet. Med andra ord, du kan konvertera från vilken bas som helst till vilken bas som helst (så länge varje bas är mellan 2 och 36).
Mer om dessa två funktioner nedan.
OCT()-funktionen
Som nämnts är denna funktion specifikt för att konvertera från decimal till oktal. Dess syntax ser ut så här:
OCT(N)
Där N
är det decimaltal du vill konvertera till oktalt.
Här är ett exempel:
SELECT OCT(8);
Resultat:
+--------+ | OCT(8) | +--------+ | 10 | +--------+
Resultatet är 10
eftersom det är den oktala motsvarigheten till 8 i decimalsystemet.
CONV()-funktionen
Detta är en mer allmän funktion som låter dig specificera, inte bara numreringssystemet som ska konverteras till , men också numreringssystemet att konvertera från .
Syntax:
CONV(N,from_base,to_base)
Där N
är talet som ska konverteras, from_base
är basen att konvertera från och to_base
är basen att konvertera till.
Så vi kan skriva om det tidigare exemplet till detta:
SELECT CONV(8, 10, 8);
Resultat:
+----------------+ | CONV(8, 10, 8) | +----------------+ | 10 | +----------------+
Och vi får samma resultat eftersom vi konverterar talet från bas 10 till bas 8.
En fördel med CONV()
funktion är att du kan konvertera mellan andra baser. Till exempel kunde vi lika gärna ha konverterat från säg bas 8 till bas 16.
Vad är Octal?
Oktal är ett system med numerisk notation som har 8 som bas. Detta till skillnad från decimal, som har 10 som bas.
I decimal räknar vi upp till 9 och börjar sedan igen med att lägga till en nolla efter den första siffran (t.ex. efter 9 kommer 10, vilket är 1 med en nolla tillagd).
I oktal (bas 8) räknar vi dock bara till 7 innan vi börjar igen och lägger till en nolla. Så 10 i oktal motsvarar 8 i decimal.
Här är en tabell att visa:
Decimal (bas 10) | Octal (Bas 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 |