T'es pas obligé de faire de droite a gauche. si tu regardes comment on convertit un nombre hexa en binaire, on fait correspondre chaque chiffre a sa valeur binaire sur 4 bits
0x1234 = 0b0001_0010_0011_0100
0x ___1 ___2 ___3 ___4
0b 0001 0010 0011 0100
a partir de la, tu peux faire une boucle avec un shift de 4 bits
par exemple, 0x1234 pareil que
n = 0
n = (n << 4) | 0x1
n = (n << 4) | 0x2
n = (n << 4) | 0x3
n = (n << 4) | 0x4
python: http://ideone.com/zLO9nv
c: http://ideone.com/KwJPXt
pour convertir un caractère, j'utilise une table de correspondance pour éviter un test mais les lettres doivent être en majuscule.