瞌睡大王.531 2022-10-10 10:10 采纳率: 0%
浏览 22

为什么输出结果是负数

初学者
代码如下
#include<stdio.h>

int main()
{
short i;
i = 50000;
printf("%d", i);//为什么输出的值-15536?
return 0;
}

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-10-10 10:21
    关注

    因为50000超过了short的取值范围,溢出后变为负数了。
    short是16位有符号,最大值是32767。50000的话,最高位是1,所以变成负数了

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 10月10日