當前位置:首頁 » 編程語言 » 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