När du arbetar med MySQL kan du använda CONV()
funktion för att konvertera ett tal från en bas till en annan. Det krävs tre argument; talet som ska konverteras, den ursprungliga basen och basen du vill konvertera den till.
Syntax
Här är den officiella syntaxen:
CONV(N,from_base,to_base)
Där from_base
är den ursprungliga basen och to_base
är basen du vill omvandla talet till.
Exempel – decimal till binär
Här är ett exempel på att konvertera ett tal från bas 10 (decimal) till bas 2 (binär):
SELECT CONV(3, 10, 2);
Resultat:
+----------------+ | CONV(3, 10, 2) | +----------------+ | 11 | +----------------+
Så vi kan se den 3
i decimal omvandlas till 11
i binär.
När det gäller binär, har MySQL också en BIN()
funktion som låter dig konvertera från decimal till binär. Därför motsvarar exemplet ovan följande:
SELECT BIN(3);
Resultat:
+--------+ | BIN(3) | +--------+ | 11 | +--------+
Exempel – binärt till decimal
Men en fördel med CONV()
Funktionen är att den också gör att du kan konvertera tillbaka åt andra hållet. Så vi kan byta exemplet ovan för att konvertera från binär till decimal:
SELECT CONV(11, 2, 10);
Resultat:
+-----------------+ | CONV(11, 2, 10) | +-----------------+ | 3 | +-----------------+
Exempel – decimal till hexadecimal
I det här exemplet konverterar vi från decimal till hexadecimal:
SELECT CONV(13, 10, 16);
Resultat:
+------------------+ | CONV(13, 10, 16) | +------------------+ | D | +------------------+
Som visas här, 13
i bas 10 (decimal) omvandlas till D
i bas 16 (hexadecimal).
Här är ett annat exempel, den här gången med ett större nummer:
SELECT CONV(12734, 10, 16);
Resultat:
+---------------------+ | CONV(12734, 10, 16) | +---------------------+ | 31BE | +---------------------+
Liknar BIN()
funktion för binära konverteringar, MySQL har också en HEX()
funktion som omvandlar ett tal från decimal till hexadecimal. Så det föregående exemplet skulle kunna skrivas om enligt följande:
SELECT HEX(12734);
Resultat:
+------------+ | HEX(12734) | +------------+ | 31BE | +------------+
Exempel – Bas 36
CONV()
funktion accepterar en bas på minst 2 (binär) och en maximal bas på 36. Här är ett exempel på att konvertera från bas 10 till bas 36:
SELECT CONV(12734, 10, 36);
Resultat:
+---------------------+ | CONV(12734, 10, 36) | +---------------------+ | 9TQ | +---------------------+