我的c程序中有一个字节数组
unsigned char global_buffer[5]={0x0A,0x21,0x01,0x01,0x01};
当我尝试在超级终端中打印此数组时,它以ASCII格式显示,因此以未知字符格式打印。如何将其打印为
A,21,1,1,1
这样数组必须是这样的{'A','21','1','1','1'}。
如何使用位移来实现这一目标?因为我在微控制器上工作可以使用%X等
答案 0 :(得分:3)
您必须在"%X"
中使用printf()
:
#include <stdio.h>
#include <string.h>
unsigned char global_buffer[5]={0x0A,0x21,0x01,0x01,0x01};
main()
{
int i;
for(i=0;i<5;i++) {
printf("%X, ", global_buffer[i]);
}
printf("\n");
}
答案 1 :(得分:0)
使用%x和%X打印十六进制值。 考虑一下这个例子
int hex = 0X0A;
printf("%x\n",hex); o/p a //for small letters
printf("%X" , hex); o/p A // for capital letters