从二进制转换为十六进制字符串

时间:2013-12-18 10:27:29

标签: c

我填充了char *个字节,例如0x01 0x02 0xff。我需要创建这些字节并以人类可读的十六进制格式打印,如"0102ff"。这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分:1)

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;
}

答案 1 :(得分:0)

使用

for (i=0; i<sizeof(my_array);i++)
    printf("%hhx", (unsigned char) my_array[i])

其中'hh'表示无符号字符,'x'表示十六进制,在'%hhx'表达式中。

源: http://www.cplusplus.com/reference/cstdio/printf/