Для многобайтового набора символов: TCHAR обозначает char. В компиляторе Microsoft char является 8-битным типом.
Для набора символов Unicode: TCHAR обозначает wchar_t. В компиляторе Microsoft wchar_t представляет 16-битный широкий символ
видя "FFFFFF", потому что char подписан в вашей системе. В C такие функции, как printf, будут преобразовывать все целые числа, меньшие, чем int, в int. Поскольку char является целым числом, ваши символы повышаются до int через расширение знака.
Поскольку "80" имеет начальный 1-бит, они расширяются до знака.
Я предлагаюВы можете попробовать использовать следующий код, чтобы замаскировать старшие биты и оставить только те младшие 8 битов, которые вам нужны.
printf("%X", x & 0xFF);