打印字符问题

在写C程序的时候遇到了奇怪的想象,声明一个字符 char a=0x5A;在用printf("%02x",a);输出的时候 打印出来的是FFFFFF5A,各种不懂啊,找了半天才发现问题,printf会把char默认转换为long输出,而long是四个字节。要想得到正确的结果,要把a声明为无符号字符,即:unsigned char a= 0x5A;

原文地址:https://www.cnblogs.com/rogge/p/3223005.html