Lorsque vous travaillez avec MySQL, vous pouvez utiliser le CONV()
fonction pour convertir un nombre d'une base à une autre. Il faut trois arguments ; le nombre à convertir, la base d'origine et la base vers laquelle vous souhaitez le convertir.
Syntaxe
Voici la syntaxe officielle :
CONV(N,from_base,to_base)
D'où from_base
est la base d'origine, et to_base
est la base dans laquelle vous voulez convertir le nombre.
Exemple – Décimal en binaire
Voici un exemple de conversion d'un nombre de base 10 (décimal) en base 2 (binaire) :
SELECT CONV(3, 10, 2);
Résultat :
+----------------+ | CONV(3, 10, 2) | +----------------+ | 11 | +----------------+
Nous pouvons donc voir que 3
en décimal convertit en 11
en binaire.
Dans le cas du binaire, MySQL a aussi un BIN()
fonction qui vous permet de convertir de décimal en binaire. Par conséquent, l'exemple ci-dessus est l'équivalent de ce qui suit :
SELECT BIN(3);
Résultat :
+--------+ | BIN(3) | +--------+ | 11 | +--------+
Exemple – Binaire à décimal
Cependant, un avantage de la CONV()
fonction est qu'il vous permet également de reconvertir dans l'autre sens. Nous pourrions donc basculer l'exemple ci-dessus pour convertir du binaire au décimal :
SELECT CONV(11, 2, 10);
Résultat :
+-----------------+ | CONV(11, 2, 10) | +-----------------+ | 3 | +-----------------+
Exemple – Décimal à hexadécimal
Dans cet exemple, nous convertissons de décimal en hexadécimal :
SELECT CONV(13, 10, 16);
Résultat :
+------------------+ | CONV(13, 10, 16) | +------------------+ | D | +------------------+
Comme démontré ici, 13
en base 10 (décimal) convertit en D
en base 16 (hexadécimal).
Voici un autre exemple, utilisant cette fois un nombre plus grand :
SELECT CONV(12734, 10, 16);
Résultat :
+---------------------+ | CONV(12734, 10, 16) | +---------------------+ | 31BE | +---------------------+
Similaire au BIN()
fonction pour les conversions binaires, MySQL a aussi un HEX()
fonction qui convertit un nombre décimal en hexadécimal. Ainsi, l'exemple précédent pourrait être réécrit comme suit :
SELECT HEX(12734);
Résultat :
+------------+ | HEX(12734) | +------------+ | 31BE | +------------+
Exemple – Base 36
Le CONV()
accepte une base minimale de 2 (binaire) et une base maximale de 36. Voici un exemple de conversion de base 10 en base 36 :
SELECT CONV(12734, 10, 36);
Résultat :
+---------------------+ | CONV(12734, 10, 36) | +---------------------+ | 9TQ | +---------------------+