永发信息网

char a;a=266;printf("%d",a);为什么结果是10,怎么个转换方式?

答案:2  悬赏:70  手机版
解决时间 2021-04-14 11:20
  • 提问者网友:蔚蓝的太阳
  • 2021-04-13 19:04
char a;a=266;printf("%d",a);为什么结果是10,怎么个转换方式?
最佳答案
  • 五星知识达人网友:蕴藏春秋
  • 2021-04-13 19:55
因为超出了char类型的范围,char最大值为0xFF,也就是256,你比256多出了10,所以输出结果为10。想输出266,就换个范围更大的数据类型,比如int。
全部回答
  • 1楼网友:醉吻情书
  • 2021-04-13 21:21
char a=256?一个字符你给个初值256?查一下ASCII表,看看是啥?一个char占一个字节,就是8位二进制!256怎么用2进制表示?255的二进制char 是8位的 两个 char 相加返回还是char型的 a+b=300 = 256 + 44, 而256 是第9位上一个1, 超出8位溢出, 所以只剩下44了. 如果改成下式就能输出300了. printf("%d,%d",c,int(a)+int(b));
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯