int x = 800000000; while (x>0) x++; System.out.println(x);為什么結(jié)果是-2147483648
3 回答
已采納

深白
TA貢獻(xiàn)5條經(jīng)驗(yàn) 獲得超2個(gè)贊
加到int 表示的最大正整數(shù)后x依然大于0,繼續(xù)執(zhí)行x++,就溢出了,變成最小值了,看看補(bǔ)碼的知識(shí)吧。

chasonZhang
TA貢獻(xiàn)3條經(jīng)驗(yàn) 獲得超3個(gè)贊
int的最大值是2147483647 = 1111111? 11111111? 11111111 11111111
1111111? 11111111? 11111111 11111111+1=10000000? 00000000? 00000000 00000000=-2147483648
注:最左邊的一位代表符號(hào)
添加回答
舉報(bào)
0/150
提交
取消