printf char como hexadecimal em c
Espero ouput algo como\9b\d9\c0...
do código abaixo, mas estou recebendo\ffffff9b\ffffffd9\ffffffc0\ffffff9d\53\ffffffa9\fffffff4\49\ffffffb0\ffff ffef\ffffffd9\ffffffaa\61\fffffff7\54\fffffffb
. Eu adicionei a conversão explícita ao char, mas não tem efeito. Oque esta acontecendo aqui?
typdef struct PT {
// ... omitted
char GUID[16];
} PT;
PT *pt;
// ... omitted
int i;
for(i=0;i<16;i++) {
printf("\\%02x", (char) pt->GUID[i]);
}
Editar: apenas transmitindo para(unsigned char)
trabalhou para mim. O compilador cospe avisos em mim ao usar%02hhx
(gcc -Wall
)(unsigned int)
não teve efeito.