Hola Amigo, yo haría lo siguiente, descompongo el dato hexa y lo convierto a caracter en dos variables
const int tabla_hexa[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
int respaldo1;
int respaldo2;
int dato_hexa;
dato_hexa = 0xfa;
respaldo1 = dato_hexa;
respaldo1 = swap(respaldo1) & 0x0f;
respaldo1 = tabla_hexa[respaldo1];
respaldo2 = dato_hexa;
respaldo2 = respaldo2 & 0x0f;
respaldo2 = tabla_hexa[respaldo2];
printf("\r\n %s",respaldo1,respaldo2)
Saludos.