El getc() te devolverá el código ascii de cada uno de los caracteres que imprimas con el printf. Como en tu caso estás imprimiendo un valor en hexadecimal, estarás recibiendo el código ascii de cada uno de sus dígitos en esa codificación.
Lo vemos mejor con un par de ejemplos:
- Si dato=8, recibirás el ascii del "8", que es el 0x38
- Si dato=231, recibirás dos caracteres, el "E" y el "7", con códigos 0x45 y 0x37 respectivamente