java中长整型定义

intx=0x80000000;System.out.println(x);longy=0x100080000000;System.out.println(y);这样定义... int x=0x80000000;
System.out.println(x);
long y=0x100080000000;
System.out.println(y);
这样定义为什么不行
编译时候错误:
test.java:17: 过大的整数: 100080000000
long y=0x100080000000;
long不是64位吗,这样y应该才48位啊~~
还有0x8000,0000到底是多少
写成二进制不是应该
1000,0000,0000,0000,0000,0000,0000,0000
如果最高位算符号位的话,那不是变成0了???
-2147483648是怎么来的?
0x7fff,ffff是2147483647难道十六进制加了1换成十进制也加1在变符号?
展开
 我来答
香料魔法
推荐于2019-09-21 · TA获得超过2.2万个赞
知道答主
回答量:218
采纳率:60%
帮助的人:22.6万
展开全部

java整型有四种分贝是:byte(1字节)、short(2字节)、int(4字节)、long(8字节)

0x100080000000超出范围,其实不是long不能保存这么大,而是这个数是个int型数。它超出的其实是int的范围(The literal 0x100080000000 of type int is out of range),在整数赋值时。

可以将赋值语言修改如下,指定它的类型为long型就可以了 :

long y=0x100080000000l;//

扩展资料

java整形与长整型之间的转换可以借助Long类或字串

1、借助Long类:

int new_a = new Long(a).intValue();

2、借助字串:

int new_a = Integer.parseInt(String.valueOf(y));

java整形、长整型、浮点型 边界值:

int型边界最大值:Integer.MAX_VALUE

int型边界最小值:Integer.MIN_VALUE

long型边界最大值:Long.MAX_VALUE

long型边界最小值:Long.MIN_VALUE

float型边界最大值:Float.MAX_VALUE

float型边界最小值:Float.MIN_VALUE


lydawen
推荐于2017-10-07 · TA获得超过3181个赞
知道大有可为答主
回答量:2678
采纳率:50%
帮助的人:1512万
展开全部
java整型有四种:byte(1字节),short(2字节),int(4字节),long(8字节)

0x100080000000 之所以超出范围,并不是long不能保存这么大,而是这个数是个int型数,所以当然超出了int范围(The literal 0x100080000000 of type int is out of range),在整数赋值时,右边默认都是int型,这时你将赋值语句修改为:
long y=0x100080000000l;//(最后一个是小写L)指定它的类型为long型就可以了
JVM资料:The JVM operand stack and local variables are defined to hold 32-bit values. So 64-bit long values that are stored on the operand stack or in local variables must be represented as two 32-bit entries.

意思是JVM 操作数栈及本地变量都定义成32位的值,所以存储在操作数栈或本地变量里的64位的long数值都必须被表示为两个32位的实体。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
曹晓山11
推荐于2017-09-07 · 知道合伙人互联网行家
曹晓山11
知道合伙人互联网行家
采纳数:3033 获赞数:52072
毕业南阳理工学院计算机科学与技术专业,本科学位。互联网行业从业3年工作经验,读过编程类相关书籍多本。

向TA提问 私信TA
展开全部

Java的整型最大值/长整型和短整型最大值及表示法定义代码:

public class Damon
{
public static void main(String args[])
 {
    long long_max=java.lang.Long.MAX_VALUE;//得到长整型的最大值。
    int int_max=java.lang.Integer.MAX_VALUE;//得到整型的最大值。
    short short_max=Short.MAX_VALUE;//得到短整型的最大值。
    byte byte_max=Byte.MAX_VALUE;//得到Byte型最大值。
    System.out.println("LONG最大值:"+long_max);
    System.out.println("INT最大值:"+int_max);
    System.out.println("SHORT最大值:"+short_max);
    System.out.println("BYTE最大值:"+byte_max);
 }
}

代码定义后输出结果:

LONG最大值:9223372036854775807

INT最大值:2147483647

SHORT最大值:32767

BYTE最大值:127

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
粗犷绿毛君AY
2009-12-28 · TA获得超过353个赞
知道小有建树答主
回答量:451
采纳率:0%
帮助的人:395万
展开全部
-2147483648是怎么来的?已经超过了int31位了,当一旦超过就会变成最小的值,好像是取反的操作造成的吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式