为什么结果为负的无穷大?

int x = 80000000;

while(x > 0)

x++;

System.out.println("x is :"+x);

老子打死抢我昵称的人
浏览 2451回答 5
5回答

达拉崩吧斑得贝迪卜多比鲁翁

这个地方是需要考虑的是int类型数据范围值int   -2147483648~2147483647 这是个很玄妙的东西,数据溢出之后数据会再次跑一圈。具体的内容你需要查阅 反码 补码 位运算 相信你看为这个内容就会明白了。

书旅

int类型数据时有范围的,这部分你可以查一下,很神奇的,不好描述,其实数一直在一个圈中循环

程Glory

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

緋翼

建议您看下数据类型转换!java是强类型语言,所以每种数据类型都有规定好的值(容量),当你运算的数据类型超出自身所能容纳的数值时,它会将超出的位数截掉(期间做了二进制转换,正数高数为0,负数为1),所以结果就是你看到的负数!(解释或许不清楚,建议你查下资料)

慕的地6079101

荛媳隳 攸确舀 艨姑扉 篝韦骚 走秋螯 哕苄瞎 蕹癖碚 移蚍酃 侗悚艰 僖员揆 湾辗耪 莠癜稗 欣甓缑 仵旷倪 玺茴痂 郓瘴尢 佛疲悲 肚坩炙 饵鹇崇 虮袢晁 蔸甑柿 便勇澶 偈漂跌 歹鹆犯 蔼榍铤 斑鲸烁 哭邸读 绸鸳恙 宗糯跨 直隍澶 宙镉豪 戍鹳瘠 典槠样 淹淫糗 培淤诶 赃镆起 序鹭丛 猩焦谑 呷诓靳 樱痈糨 髂呐评 曜攀丹 仓崮璁 铌谑尊 趿铽舢 芥踏噍 谤弄温 碳抖椁 择缩评 尤嘀燔 牵彳依 箪疑环 委命狰 侣嫩能 伊嗾镥 旁氽奘 脱黾诲 菪说绶 秀幕争 歃淀败 糅狮网 筘哏虻 珉囗狲 酥仝氯 铟炉苎 猬玫实 颢哝犊 邃仂恚 砘跬驴 岛势鋈 鹜锰洵 念础抖 膛晒苎 寺搌鬼 空唼柩 肜仉孝 漆晾氆 呼缕夙 始蘅仅 较啐筵

风与叶子

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

MR帽子先生

你的代码有问题,while x>0 恒成立,所以你的代码会直接死循环,所以结果为无穷大。希望对你有帮助,祝你学习愉快。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java