关于基本数据类型Long的问题,实在是想不通!!求帮忙
在java中long是定义为64位
大家看下面例子:
public class print
{
public static void main(String args[])
{
long i=0x000000001;
long digest=0x900000000;
long y;
y=i^digest;
System.out.println("y="+y);
}
}
这里有个编译出错:
integer number too large: 900000000
long digest=0x900000000;
^
但是当把 digest的值改为digest=0x95e62708l
public class print
{
public static void main(String args[])
{
long i=0x000000001;
long digest=0x95e62708l;
long y;
y=i^digest;
System.out.println("y="+y);
}
}
可以通过编译,而且可以得出结果
为什么当 digest=0x900000000时它会报错,而当digest=0x5e62708l时却可以通过编译?
Long是64位,0x900000000肯定没超过64位,为什么会说数据太大
(integer number too large: 900000000)?
integer number too large: 900000000,这个integer又是怎么一回事