亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么結果為負的無窮大?

為什么結果為負的無窮大?

老子打死搶我昵稱的人 2017-07-05 20:15:32
int x = 80000000;while(x > 0)x++;System.out.println("x is :"+x);
查看完整描述

5 回答

已采納
?
達拉崩吧斑得貝迪卜多比魯翁

TA貢獻41條經驗 獲得超38個贊

這個地方是需要考慮的是int類型數據范圍值

int ? -2147483648~2147483647

這是個很玄妙的東西,數據溢出之后數據會再次跑一圈。

具體的內容你需要查閱 反碼 補碼 位運算 相信你看為這個內容就會明白了。

查看完整回答
3 反對 回復 2017-07-06
?
書旅

TA貢獻238條經驗 獲得超101個贊

int類型數據時有范圍的,這部分你可以查一下,很神奇的,不好描述,其實數一直在一個圈中循環

查看完整回答
2 反對 回復 2017-07-06
?
程Glory

TA貢獻19條經驗 獲得超6個贊

超出了int型數值所能存放的最大數值。

查看完整回答
1 反對 回復 2017-07-06
?
緋翼

TA貢獻9條經驗 獲得超6個贊

建議您看下數據類型轉換!java是強類型語言,所以每種數據類型都有規定好的值(容量),當你運算的數據類型超出自身所能容納的數值時,它會將超出的位數截掉(期間做了二進制轉換,正數高數為0,負數為1),所以結果就是你看到的負數!(解釋或許不清楚,建議你查下資料)

查看完整回答
1 反對 回復 2017-07-06
?
風與葉子

TA貢獻1條經驗 獲得超0個贊

int?x?=?80000000;
while(x?>?0)?{
????x++;
}????????????//跳不出循環。
System.out.println("x?is?:"+x);


查看完整回答
反對 回復 2017-07-06
?
MR帽子先生

TA貢獻245條經驗 獲得超106個贊

你的代碼有問題,while x>0 恒成立,所以你的代碼會直接死循環,所以結果為無窮大。

希望對你有幫助,祝你學習愉快。

查看完整回答
反對 回復 2017-07-05
  • 老子打死搶我昵稱的人
    老子打死搶我昵稱的人
    您好!謝謝你的回答,但是我想問的問題是為什么是負的無窮大,因為我也知道它是無窮循環的。 這是eclipse運行的結果: x is :-2147483648
  • MR帽子先生
    MR帽子先生
    因為出錯了,超出最大字符就會顯示-的
  • 緋翼
    緋翼
    并不是出錯,而是超出了int規定的最大值,得到了負數,然后結果成立,所以并不是死循環
  • 5 回答
  • 0 關注
  • 2704 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號