Comment convertir facilement un nombre hexadécimal en entier avec SQL Server 2008

SQL Server 2008 propose une nouvelle fonctionnalité apportée à la fonction CONVERT() qui va faciliter la vie des développeurs concernant la conversion des nombres hexadécimaux en entier.

Avec les versions antérieures de SQL Server, les développeurs étaient obligés de créer leur propre fonction de conversion pour pouvoir calculer la valeur décimale d’un nombre hexadécimal. Avec SQL Server 2008 il suffit d’employer la fonction CONVERT() qui permet dorénavant la conversion des chaînes de caractères en valeur binaire. Le 3ème argument de cette fonction détermine le style de conversion avec l’introduction de nouvelles valeurs. Avec le 1er style (argument = 1), le nombre hexadécimal stocké sous forme de chaîne de caractère doit être préfixé par ‘0x’ pour pouvoir être converti en valeur binaire tandis qu’avec le 2ème style (argument = 2) ce préfixe n’est pas nécessaire.

Prenons un exemple :

Conversion d’une variable contenant une valeur hexadécimale sont forme de chaîne de caractère en une valeur décimale.

DECLARE @hexa VARCHAR(10) = ‘49747A69′;

SELECT
    — Conversion chaine de caractère en valeur binaire
    CONVERT(VARBINARY(5), @hexa, 2) AS [Char to Bin],
    — Conversion valeur binaire (Hexa) en valeur décimale
    CAST(CONVERT(VARBINARY(5), @hexa, 2) AS INT) AS [Bin to int];

et son résultat :

result_convert_hexa_decimal

Bonne conversion !!

David BARBARIN (Mikedavem)
Elève ingénieur CNAM Lyon

Laisser un commentaire