Podczas pracy z MySQL możesz użyć funkcji CONV()
funkcja konwersji liczby z jednej podstawy do drugiej. Wymaga trzech argumentów; liczba do przekonwertowania, oryginalna podstawa i podstawa, na którą chcesz ją przekonwertować.
Składnia
Oto oficjalna składnia:
CONV(N,from_base,to_base)
Gdzie from_base
jest oryginalną bazą, a to_base
jest bazą, na którą chcesz przekonwertować liczbę.
Przykład – dziesiętny na binarny
Oto przykład konwersji liczby z podstawy 10 (dziesiętnej) na podstawę 2 (binarną):
SELECT CONV(3, 10, 2);
Wynik:
+----------------+ | CONV(3, 10, 2) | +----------------+ | 11 | +----------------+
Widzimy więc, że 3
w liczbach dziesiętnych konwertuje do 11
w formacie binarnym.
W przypadku plików binarnych MySQL ma również funkcję BIN()
funkcja umożliwiająca konwersję z dziesiętnego na binarny. Dlatego powyższy przykład jest odpowiednikiem następującego:
SELECT BIN(3);
Wynik:
+--------+ | BIN(3) | +--------+ | 11 | +--------+
Przykład — binarny na dziesiętny
Jednak jedna z zalet CONV()
funkcja polega na tym, że umożliwia również konwersję z powrotem w drugą stronę. Możemy więc zmienić powyższy przykład, aby przekonwertować z binarnego na dziesiętny:
SELECT CONV(11, 2, 10);
Wynik:
+-----------------+ | CONV(11, 2, 10) | +-----------------+ | 3 | +-----------------+
Przykład – dziesiętny na szesnastkowy
W tym przykładzie konwertujemy z dziesiętnego na szesnastkowy:
SELECT CONV(13, 10, 16);
Wynik:
+------------------+ | CONV(13, 10, 16) | +------------------+ | D | +------------------+
Jak pokazano tutaj, 13
w bazie 10 (dziesiętnie) zamienia się na D
w podstawie 16 (szesnastkowo).
Oto kolejny przykład, tym razem z większą liczbą:
SELECT CONV(12734, 10, 16);
Wynik:
+---------------------+ | CONV(12734, 10, 16) | +---------------------+ | 31BE | +---------------------+
Podobne do BIN()
funkcja konwersji binarnych, MySQL ma również funkcję HEX()
funkcja konwertująca liczbę z dziesiętnej na szesnastkową. Zatem poprzedni przykład można przepisać w następujący sposób:
SELECT HEX(12734);
Wynik:
+------------+ | HEX(12734) | +------------+ | 31BE | +------------+
Przykład – podstawa 36
CONV()
funkcja przyjmuje minimalną podstawę 2 (binarną) i maksymalną podstawę 36. Oto przykład konwersji z podstawy 10 na podstawę 36:
SELECT CONV(12734, 10, 36);
Wynik:
+---------------------+ | CONV(12734, 10, 36) | +---------------------+ | 9TQ | +---------------------+