当前位置:首页 » 编程语言 » c语言溢出变负
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言溢出变负

发布时间: 2023-03-27 10:53:09

① (c语言)整型数据的溢出

其实这个问题很简单的,这个可能和你编译器环境有关,int 类型表示范围是-32768-32767。所以你可以把它的表示范围比作一个圆。因为在电脑中负数是按补码保存的,所以加1之后会出现进位。如果是char 类型表示-128-127的话,那么char a = 128也会变成-128的。

你可以看一下下面的图,这个圆就好比表示的范围。如果不信的话你可以将int a = 32769;试试的,输出应该会变成-32787

② C语言程序输出数据溢出问题

在c语言中,数据的存储就像一个圆圈,正数溢出数据就会从最小负数开始,负数溢出数据同理,打个比方(简略写一下):
int
a=32768,b=-32769;
printf("a=%d,b=%d",&a,&b);
则会输出a=-32768,b=32767;
这样则50000输出就是(50000-32767)+(-32768)+(-1)=-15536