java int 定义和long定义区别

问下为什么会这样?... 问下 为什么会这样? 展开
 我来答
vanezkw
2014-03-13 · TA获得超过459个赞
知道答主
回答量:90
采纳率:0%
帮助的人:57万
展开全部
这个很容易理解啊。
首先先说一下,java不分你的机器是32位还是64位的,和平台无关(仅仅和java虚拟机相关)。
int是4个字节,long 是8个字节。
你问题中的a是long型,b是int型。在计算的时候a*a那么结果会是一个long型,b*b会是一个int型。如果是a*b会是一个long型。至于具体的转型关系我就不再多说了。计算结果不同是因为你计算的结果如果超过了指定类型的长度那么就舍弃,说白了就是取值范围溢出的处理。
有车2015
2015-07-28 · TA获得超过893个赞
知道小有建树答主
回答量:684
采纳率:0%
帮助的人:353万
展开全部
定义没什么区别,就是定义不同的类型而已啊

类型名称 字节数 取值范围
signed char 1 -128~+127
short
int 2 -32768~+32767
int 4 -2147438648~+2147438647
long
int 4 -2147438648~+2141438647
long long long
int 8 -9223372036854775808~+9223372036854775807
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友990ce41
2014-03-13 · 超过26用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:56.4万
展开全部
简单的说int能存的数要比long小,小很多
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
micro0369
2014-03-13 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:4033万
展开全部
int 32 位的机器上是 4 个字节,表示范围是 -2^31 = -2 147 483 648 到 2^31 = 2 147 483 641

long 是8个字节
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
海蓝_爱埋
2014-03-13 · TA获得超过496个赞
知道小有建树答主
回答量:462
采纳率:0%
帮助的人:333万
展开全部
因为位数不一样。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式