Jeśli chcesz przekonwertować liczbę z dziesiętnej na ósemkową (podstawa 8), w przypadku korzystania z MySQL przychodzą na myśl dwie funkcje. Jedna funkcja służy do wykonywania konwersji ósemkowych, druga do wykonywania konwersji między różnymi bazami. Oto one:
OCT()
- Ta funkcja jest używana specjalnie do konwersji z dziesiętnej na ósemkową.
CONV()
- Ta funkcja ma bardziej ogólny cel. Pozwala określić podstawę oryginalnej liczby i wynik. Innymi słowy, możesz przekonwertować z dowolnej podstawy na dowolną podstawę (o ile każda podstawa ma wartość od 2 do 36).
Więcej o tych dwóch funkcjach poniżej.
Funkcja OCT()
Jak wspomniano, ta funkcja jest przeznaczona specjalnie do konwersji z dziesiętnej na ósemkową. Jego składnia wygląda następująco:
OCT(N)
Gdzie N
to liczba dziesiętna, którą chcesz przekonwertować na ósemkową.
Oto przykład:
SELECT OCT(8);
Wynik:
+--------+ | OCT(8) | +--------+ | 10 | +--------+
Wynik to 10
ponieważ jest to ósemkowy odpowiednik 8 w systemie dziesiętnym.
Funkcja CONV()
Jest to funkcja o bardziej ogólnym przeznaczeniu, która pozwala określić, nie tylko system liczbowy do przekonwertowania na , ale także system liczbowy do konwersji z .
Składnia:
CONV(N,from_base,to_base)
Gdzie N
to liczba do konwersji, from_base
jest bazą do konwersji i to_base
jest podstawą do konwersji.
Możemy więc przepisać poprzedni przykład do tego:
SELECT CONV(8, 10, 8);
Wynik:
+----------------+ | CONV(8, 10, 8) | +----------------+ | 10 | +----------------+
I otrzymujemy ten sam wynik, ponieważ konwertujemy liczbę o podstawie 10 na podstawę 8.
Jedna z zalet CONV()
funkcja polega na tym, że możesz konwertować między innymi bazami. Na przykład równie dobrze moglibyśmy przekonwertować z, powiedzmy, podstawy 8 na podstawę 16.
Co to jest ósemkowy?
Oktal to system notacji numerycznej, który ma 8 jako podstawę. Jest to w przeciwieństwie do dziesiętnego, który ma podstawę 10.
W systemie dziesiętnym liczymy do 9, a następnie zaczynamy od nowa, dodając zero po pierwszej cyfrze (np. po 9 jest 10, czyli 1 z dodanym zerem).
Jednak w systemie ósemkowym (podstawa 8) liczymy tylko do 7 przed ponownym rozpoczęciem i dodaniem zera. Zatem 10 w systemie ósemkowym jest odpowiednikiem 8 w systemie dziesiętnym.
Oto tabela do zademonstrowania:
Ułamek dziesiętny (podstawa 10) | ósemkowe (podstawa 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 |