譬如十六进制变量 m = 4D42,应该如何用printf输出其代表的Ascii字符“BM”,我用的printf("%c",m),只输出第一个字符,printf("%c%c",m)也不行。谢谢!
unsigned int mm = 0x4d42;
fprintf(fp,"%C%C",mm%256,mm/256);
// 小尾序,先取后两位做为第一个字母的ASCII值,再取前两位做为第二个字母的ASCII值,按两个字符打印
printf("%s",m)为什么也不行。。。
要注意,intel处理器是小端的。因此你得这么写:
unsigned int x = 0x424d0000;
printf("%c", ^(unsigned char *)&x)
int m=0x4d42;
char c = (char)(m>>8);
char d = (char)(m & 0x00FF);
System.out.printf("%c%c",c,d);