Při práci s MySQL můžete použít CONV()
funkce pro převod čísla z jednoho základu na druhý. Chce to tři argumenty; číslo, které se má převést, původní základ a základ, na který jej chcete převést.
Syntaxe
Zde je oficiální syntaxe:
CONV(N,from_base,to_base)
Kde from_base
je původní základ a to_base
je základ, na který chcete číslo převést.
Příklad – Desetinné až binární
Zde je příklad převodu čísla ze základu 10 (desítkové) na základ 2 (binární):
SELECT CONV(3, 10, 2);
Výsledek:
+----------------+ | CONV(3, 10, 2) | +----------------+ | 11 | +----------------+
Takže vidíme, že 3
v desítkové soustavě převede na 11
v binárním formátu.
V případě binárního má MySQL také BIN()
funkce, která umožňuje převod z desítkové soustavy na binární. Výše uvedený příklad je tedy ekvivalentem následujícího:
SELECT BIN(3);
Výsledek:
+--------+ | BIN(3) | +--------+ | 11 | +--------+
Příklad – binární až desítkové
Nicméně jedna výhoda CONV()
funkcí je, že vám také umožňuje převést zpět jiným způsobem. Takže bychom mohli přepnout výše uvedený příklad a převést z binárního na desítkové:
SELECT CONV(11, 2, 10);
Výsledek:
+-----------------+ | CONV(11, 2, 10) | +-----------------+ | 3 | +-----------------+
Příklad – desítkové až šestnáctkové
V tomto příkladu převedeme z desítkové soustavy na šestnáctkovou:
SELECT CONV(13, 10, 16);
Výsledek:
+------------------+ | CONV(13, 10, 16) | +------------------+ | D | +------------------+
Jak je ukázáno zde, 13
v základu 10 (desetinně) převede na D
v základu 16 (hexadecimálně).
Zde je další příklad, tentokrát s použitím většího čísla:
SELECT CONV(12734, 10, 16);
Výsledek:
+---------------------+ | CONV(12734, 10, 16) | +---------------------+ | 31BE | +---------------------+
Podobné jako BIN()
funkce pro binární převody, MySQL má také HEX()
funkce, která převádí číslo z desítkové na šestnáctkové. Takže předchozí příklad by mohl být přepsán následovně:
SELECT HEX(12734);
Výsledek:
+------------+ | HEX(12734) | +------------+ | 31BE | +------------+
Příklad – základ 36
CONV()
funkce přijímá minimální základ 2 (binární) a maximální základ 36. Zde je příklad převodu ze základu 10 na základ 36:
SELECT CONV(12734, 10, 36);
Výsledek:
+---------------------+ | CONV(12734, 10, 36) | +---------------------+ | 9TQ | +---------------------+