C and c++ difference between signed and unsigned char type