0
我有char *
填充字節例如0x01 0x02 0xff
。我需要製作這些字節並以可讀的十六進制格式打印,如"0102ff"
。這樣做的最好方法是什麼?從二進制轉換爲十六進制字符串
我有char *
填充字節例如0x01 0x02 0xff
。我需要製作這些字節並以可讀的十六進制格式打印,如"0102ff"
。這樣做的最好方法是什麼?從二進制轉換爲十六進制字符串
int main()
{
char *p = "12345";
// or with non string data. -> char p[5] = { 0x00, 0x56, 0x2C, 0x7a, 0x88 };
int i;
for(i = 0; i < 5; i++)
printf("%02x ", p[i]);
printf("\n");
return 0;
}
使用
for (i=0; i<sizeof(my_array);i++)
printf("%hhx", (unsigned char) my_array[i])
其中 'HH' 是指無符號字符,並且 'x' 表示十六進制,在 '%HHX' 表達。
來源:[使用標準C庫函數] http://www.cplusplus.com/reference/cstdio/printf/
(http://en.cppreference.com/w/c/io/fprintf) – user694733
你嘗試過什麼?什麼沒有用?請告訴我們您已經完成了一些研究,至少。 –
要求「最好的方式」 - 這意味着「對這個問題的回答幾乎完全基於意見,而不是事實,參考或具體的專業知識。」 – usr2564301