C程序中: char c1=197,c2=198,以十进制输出会输出什么信息,为什么?

2020-08-17 科技 510阅读
考点一:char 类型变量里面存的是字符的ASCII编码,是10进制数值。占1个字节,无符号整形的。所以表示的范围是0-255.而char换成int形的时候要考虑数的正负数问题。
考点二:负数的补码:【负数的补码是对其原码逐位取反,但符号位除外;然后整个数加1。】
那么我们反着回去:
197对应的二进制是:11000101,不看符号位。减1=11000100,然后除符号位全部取反=10111011,第一位1表示负数,后面的0111011写成10进制等于32+16+8+2+1=59,所以中和起来就是-59.同理char2=198对应的%d就是-58
楼主好运!
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com