int b=322;
char c2;
printf(“%c”,c2);
char字符占8 bit的空间,表达范围是0~255,你赋的值322已超出其可表达的范围,高位部分会被截断抛弃。
如322,其二进制为0000 0001 0100 0010(用十六进制来表达即0x142),因为只能存放8 bit的数据,故而变量a实际存放的仅是322的低8位,即0100 0010(用十六进制来表达即0x42),用十进制来表达即是66,对应ASCII码正好是字符’B’
int b=322;
char c2;
printf(“%c”,c2);
char字符占8 bit的空间,表达范围是0~255,你赋的值322已超出其可表达的范围,高位部分会被截断抛弃。
如322,其二进制为0000 0001 0100 0010(用十六进制来表达即0x142),因为只能存放8 bit的数据,故而变量a实际存放的仅是322的低8位,即0100 0010(用十六进制来表达即0x42),用十进制来表达即是66,对应ASCII码正好是字符’B’