初学者
代码如下
#include<stdio.h>
int main()
{
short i;
i = 50000;
printf("%d", i);//为什么输出的值-15536?
return 0;
}
初学者
代码如下
#include<stdio.h>
int main()
{
short i;
i = 50000;
printf("%d", i);//为什么输出的值-15536?
return 0;
}
因为50000超过了short的取值范围,溢出后变为负数了。
short是16位有符号,最大值是32767。50000的话,最高位是1,所以变成负数了