作业帮 > 综合 > 作业

C语言初级问题为什么相对应的结果是这样的,

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/09 04:33:32
C语言初级问题


为什么相对应的结果是这样的,
printf("c1=%c,c2=%c\n",c1,c2);这里是要输出ASCII为197和198对应的字符,由于ASCII码只有127个,197和198已经超过了这个范围,因此显示的是一个随机字符
printf("c1=%d,c2=%d\n",c1,c2);这里是要输出c1和c2的值,由于c1和c2是字符型变量只有1个字节的存储空间,c1的值197对应的二进制为1 1000101(只用一个字节表示),由于首位为1,所以是负数,且后面1000101是补码,对应的原码是取反加1,即0111011,换成十进制就是59,所以197按照%d(有符号十进制输出)输出的结果就是-59.对于c2的输出也是一样的,你可以自己计算验证一下