Bueno, primer debemos tener claro que:
Una variable de 8 bits debe ser declarada tipo char.
Usando el modificador unsigned, decimos al compilador que serán almacenados datos sin signo, lo cual nos da 8 bits de datos, es decir... desde 0 hasta 255 ( 0x00 ... 0xFF).
Usando el modificador signed, decimos al compilador que serán almacenados datos con signo, lo cual nos da 7 bits de datos y 1 de signo. El bit sacrificado para el signo es el MSB del byte. Con lo anterior tenemos que en una variable tipo char que es de 8 bits si se usa el modificador signed, solo nos deja 1 bit de signo y 7 de datos.
Si quieres ver en hex una variable signed char, pasas el numero decimal a hex como ya sabes y luego colocas el bit MSB en 1 si es negativo o en 0 si es positivo.
SALUDOS!