Problem: When I use sprintf to convert a byte to Hex, negative values are prefixed with FF even when I force format to 2 characters or cast as an unsigned integer. I have tried numerous approaches, all which point to a forced signed int inside the sprintf funcion.
void write0_byte_to_hex(char *s){ char sresult[4]; unsigned int i; i = s[0]; sprintf(sresult, "%02X", i); uart_enq(&uart0, sresult); } For the above code, if s[0] = 0xD5, the sprintf result is "FFD5" I have looked through the FAQ's and forums for a resolution to this but didn't find a solution. I have a work around but I am afraid that nonobvious bugs will be introduced when sprintf is fixed. Thanks, Gene
<<attachment: winmail.dat>>