Когато работите с MySQL, можете да използвате CONV()
функция за преобразуване на число от една основа в друга. Необходими са три аргумента; числото за преобразуване, оригиналната база и базата, в която искате да го преобразувате.
Синтаксис
Ето официалния синтаксис:
CONV(N,от_база,към_база)
Където from_base
е оригиналната база и to_base
е основата, в която искате да преобразувате числото.
Пример – десетичен в двоичен
Ето пример за преобразуване на число от основа 10 (десетична) в основа 2 (двоична):
ИЗБЕРЕТЕ CONV(3, 10, 2);
Резултат:
+----------------+| CONV(3, 10, 2) |+----------------+| 11 |+----------------+
Така че можем да видим това 3
в десетичната запетая се преобразува в 11
в двоичен.
В случай на двоичен, MySQL също има BIN()
функция, която ви позволява да преобразувате от десетичен в двоичен. Следователно горният пример е еквивалентен на следното:
ИЗБЕРЕТЕ BIN(3);
Резултат:
<пред>+--------+| BIN(3) |+--------+| 11 |+--------+Пример – Двоично към десетично число
Въпреки това, едно предимство на CONV()
функцията е, че също така ви позволява да конвертирате обратно по друг начин. Така че можем да превключим горния пример, за да преобразуваме от двоичен в десетичен:
ИЗБЕРЕТЕ CONV(11, 2, 10);
Резултат:
+-----------------+| CONV(11, 2, 10) |+----------------+| 3 |+-----------------+
Пример – десетичен към шестнадесетичен
В този пример преобразуваме от десетичен в шестнадесетичен:
ИЗБЕРЕТЕ CONV(13, 10, 16);
Резултат:
+-----------------+| CONV(13, 10, 16) |+-----------------+| D |+------------------+
Както е показано тук, 13
в база 10 (десетична) се преобразува в D
в основа 16 (шестнадесетична).
Ето още един пример, този път с по-голямо число:
ИЗБЕРЕТЕ CONV(12734, 10, 16);
Резултат:
+---------------------+| CONV(12734, 10, 16) |+---------------------+| 31BE |+---------------------+
Подобно на BIN()
функция за двоични преобразувания, MySQL също има HEX()
функция, която преобразува число от десетично в шестнадесетично. Така че предишният пример може да бъде пренаписан, както следва:
ИЗБЕРЕТЕ HEX(12734);
Резултат:
+-----------+| HEX(12734) |+-----------+| 31BE |+-----------+
Пример – Основа 36
CONV()
функцията приема минимална база от 2 (двоична) и максимална база от 36. Ето пример за преобразуване от база 10 в база 36:
ИЗБЕРЕТЕ CONV(12734, 10, 36);
Резултат:
+---------------------+| CONV(12734, 10, 36) |+---------------------+| 9TQ |+---------------------+