永发信息网

求运行结果 main() { int a=32767; printf("%d",a+2); } 答案为什么是—32767

答案:5  悬赏:30  手机版
解决时间 2021-01-14 02:18
  • 提问者网友:原来太熟悉了会陌生
  • 2021-01-13 05:30
求运行结果 main() { int a=32767; printf("%d",a+2); } 答案为什么是—32767
最佳答案
  • 五星知识达人网友:逃夭
  • 2021-01-13 06:03
你应该是在TC编译的吧,TC中int是16位的。32767是16位signed int的上限,加2就溢出了。追问答案是-32767(没有上机试过,TC编译的话加2确实溢出了,但是-32767怎么理解?有错误?)追答32767+2=32769=1000000000000001(2进制,补码)
求原码,加2^16得2^16-1=1111111111111111即为-32767
全部回答
  • 1楼网友:妄饮晩冬酒
  • 2021-01-13 09:02
我试过没问题啊
  • 2楼网友:夜风逐马
  • 2021-01-13 07:43
正确答案是32769 ,int的范围是-2^31-----2^31,所以没有超过范围
  • 3楼网友:我住北渡口
  • 2021-01-13 07:12
正确答案是32769
  • 4楼网友:鱼芗
  • 2021-01-13 06:12
int型的数值不能超过32767,建议改为double型或是float型。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯