中易网

若定义了short a=32768;执行语句printf(“a=%d”,a);后输出的结果为什么

答案:1  悬赏:10  
解决时间 2021-01-10 22:53
  • 提问者网友:萌卜娃娃
  • 2021-01-10 14:02
若定义了short a=32768;执行语句printf(“a=%d”,a);后输出的结果为什么
最佳答案
  • 二级知识专家网友:舍身薄凉客
  • 2021-01-10 14:42
short只有两字节空间. 最高位为符号位.
赋值a=32768=0x8000
最高位为1, 代表负值.
a实际值为-32768(补码转换)
当%d输出时,转为int型 还是-32768
所以输出就是这个值了.追问那如果是%hd输出的话就是0了吗?追答一样是-32768
这个是在short范围内的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息