瞌睡大王.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日

悬赏问题

  • ¥15 Opencv(C++)异常
  • ¥15 VScode上配置C语言环境
  • ¥15 汇编语言没有主程序吗?
  • ¥15 这个函数为什么会爆内存
  • ¥15 无法装系统,grub成了顽固拦路虎
  • ¥15 springboot aop 应用启动异常
  • ¥15 matlab有关债券凸性久期的代码
  • ¥15 lvgl v8.2定时器提前到来
  • ¥15 qtcp 发送数据时偶尔会遇到发送数据失败?用的MSVC编译器(标签-qt|关键词-tcp)
  • ¥15 cam_lidar_calibration报错