- *str++ = ((value >> 30) & 0x1) | 0xfc;
- *str++ = ((value >> 24) & 0x3f) | 0x80;
- *str++ = ((value >> 18) & 0x3f) | 0x80;
- *str++ = ((value >> 12) & 0x3f) | 0x80;
- *str++ = ((value >> 6) & 0x3f) | 0x80;
- *str = (value & 0x3f) | 0x80;
+ *str++ = (unsigned char)(((value >> 30) & 0x1) | 0xfc);
+ *str++ = (unsigned char)(((value >> 24) & 0x3f) | 0x80);
+ *str++ = (unsigned char)(((value >> 18) & 0x3f) | 0x80);
+ *str++ = (unsigned char)(((value >> 12) & 0x3f) | 0x80);
+ *str++ = (unsigned char)(((value >> 6) & 0x3f) | 0x80);
+ *str = (unsigned char)((value & 0x3f) | 0x80);