Une possibilité serait de mettre les caracteres hexadecimaux dans une matrice :
char carhex[]={"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};
puis tu remplaces la ligne
tab[i]= (nombre%2==0) ? '0' : '1' ;
par
tab[i] = carhex[nombre%16];
Il faut aussi remplacer
quotient=nombre/2;
par
quotient=nombre/16;
(ceci dit, je doute que tu aies reellement besoin de la variable quotient).
a+
-Qwerti.