关于基本数据类型Long的问题,实在是想不通!!求帮忙

zhanlinghua 2003-08-26 12:32:59
在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又是怎么一回事
...全文
57 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧