我正试着把4294967295分给长。即(2^32-1) java(netbeans)给出以下错误消息“整数太大”
事实上,我试图找出int可以处理的最大数字(手动处理),结果发现它是2147483647 (当然,很明显是2^31-1)。
但令人惊讶的是,我发现即使是长的类型也不能处理比这个更大的数字。int和long之间没有任何区别吗?java说long是64位
我是不是遗漏了什么?
发布于 2014-10-15 07:17:46
问题是您使用4294967295作为int
文本,但它不是一个有效的int
值。您希望它是long
文本,所以需要在其上添加L
后缀。这很好:
long x = 4294967295L;
如果整数以ASCII字母L或l(Ell)作为后缀,则为long类型;否则为int类型(§4.2.1)。
发布于 2014-10-15 07:19:15
使用较低的l
来向编译器显示它是一个长值。
long l = 4294967295l ;
https://stackoverflow.com/questions/26376627
复制相似问题