У меня есть функция, которая принимает unsigned char*
в качестве входных данных.Преобразование целого числа в unsigned char * (int 221 to " xdd")
Скажем, например, что у меня есть:
unsigned char* data = (unsigned char*) "\xdd";
int a = 221;
Как я могу преобразовать мое целое a
к unsigned char*
таким образом, что data
и мой конвертированы a
неотличима? Я пробовал играть со sprintf, но не повезло, я не уверен, как обращаться с частью «\ x».
С 'sprintf()', что-то вроде 'unsigned char res [5]; sprintf (res, "\\ x% 02x", a & 0xff); '(только для младшего байта' a'). Возможно, вам не хватало '\\ x' часть строки формата? Есть и другие способы сделать это, хотя ... – Dmitri