Я знаю, что есть другие сообщения вроде этого, но я думаю, что у меня разные. У меня есть группа чисел, которые я хочу отобразить. Тем не менее, он сохраняется как unsigned short. Поскольку это дается мне из сетевого буфера, все мои данные имеют неподписанный короткий формат. Итак, для серийного номера, начинающегося с «ABC-», два беззнаковых шорт будут содержать 0x4142 и 0x432D (уже в формате ASCII). Мне нужно преобразовать их, чтобы набирать char для отображения с использованием printf и% s, но для остальной части моей системы они должны оставаться как unsigned short. Это то, что я пробовал до сих пор, но выход пуст:Convert unsigned short to char
unsigned char * num[3];
num[0] = (unsigned char*)(SYSTEM_N >> 8);
num[1] = (unsigned char*)(SYSTEM_N & 0x00FF);
printf("System Number: %s \r\n", num);
Может ли кто-нибудь пролить свет на это для меня? Благодаря!
и преобразования в уголь * должно быть преобразование на символ – SergeyA
'неподписанные символ * Num [3]; вы получаете то, что является типом 'num'? – ameyCU
Почему бы не 'printf (« Системный номер:% c% c \ n », SYSTEM_N >> 8, SYSTEM_N & 0x00FF);'? Ваш * «Мне нужно ... [use]% s» * просто усложняет работу. –