如何将16位数字列表转换为十六进制字符串,如"\x0f\x56\x44\xe0"
。
这些16位值如何显示?它们也是宏观扩张的结果#define make_word(arg1, arg2) arg1 << 16 + arg2
。所以完整的调用应该是这样的:
some_function(MAKE_HEX_STR(make_word(1, 2), make_word(3, 4), make_word(5, 6));
并应扩展到:
some_function("\x01\x02\x03\x04\x05\x06);
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以尝试使用strtol并将基数指定为16。
或者您可以尝试这样:
int x = yourNumber;
char result[5];
if (x <= 0xFFFF)
{
sprintf(&result[0], "%04x", x);
}