22问答网
所有问题
java int 定义和long定义区别
问下 为什么会这样?
举报该问题
推荐答案 2014-03-13
这个很容易理解啊。
首先先说一下,java不分你的机器是32位还是64位的,和平台无关(仅仅和java虚拟机相关)。
int是4个字节,long 是8个字节。
你问题中的a是long型,b是int型。在计算的时候a*a那么结果会是一个long型,b*b会是一个int型。如果是a*b会是一个long型。至于具体的转型关系我就不再多说了。计算结果不同是因为你计算的结果如果超过了指定类型的长度那么就舍弃,说白了就是取值范围溢出的处理。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://22.wendadaohang.com/zd/CSTIfhfh00fXSCCC0hh.html
其他回答
第1个回答 2015-07-28
定义没什么区别,就是定义不同的类型而已啊
类型名称 字节数 取值范围
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
第2个回答 2014-03-13
简单的说int能存的数要比long小,小很多
第3个回答 2014-03-13
int 32 位的机器上是 4 个字节,表示范围是 -2^31 = -2 147 483 648 到 2^31 = 2 147 483 641
long 是8个字节
第4个回答 2014-03-13
因为位数不一样。
相似回答
大家正在搜
相关问题
java中的long 和 int 有啥不同吗?什么时候用lo...
Java的数据类型 long 跟int有什么区别
Java的数据类型 long 跟int有什么区别
Java中long和Long有什么区别
java 定义字段int和integer有什么不同,
java中长整型定义
java 定义数组 int a[];与int[] a 有什么...
java long与int取值范围的问题