int 和char

来源:百度知道 编辑:UC知道 时间:2024/07/09 07:20:42
char c11=128;
printf("%d\n",c11);
printf("%c",c11);
结果,为什么?

printf("%d\n",c11);
printf("%c",c11);
结果:
-128 //因为%d是控制c11以十进制有符号形式输出,而128存储在字符变量中是如下2进制形式:
1000 0000 当你按%d格式输出后,printf函数会对字符数值进行扩展将最高位视为符号位,而这个数值正好是有符号8位2进制数表示的-128,因此输出-128
C//注意这里不是大写字母C是ASCII码值表中128对应的ASCII字符

128 128.0000

-128
C
用Turbo C得出的答案,至于原因是:整型输出-128,字符型输出C