long型的长度多少啊? 头晕了:(

时间:2021-07-04 16:33:41
long L = 0x80000000;
System.out.println(L);
怎么会是负数? 好象大于2^32的数都是负的了, 难道long是32位的? 头晕了。救救我吧!

6 个解决方案

#1


64位有符号整数,值域位-2^63~2^63-1(-9223372036854775808到9223372036854775807)

#2


大哥:难道0x80000000不是负数吗?你算算看
10000000000000000..........0^_^第一位是符号位啦,long型范围是
-2^63~~~~~~2^63-1

#3


我也知道啊! 0x80000000 是这个范围吧?而且是正的。如果我用0x80000000的10进制数2147483648打也是负的。

#4


我怎么表示2147483648呢?

#5


long L = 0x80000000;
改成long L=0x80000000l;
long型后面需要加'l'

#6


同意楼上。

#1


64位有符号整数,值域位-2^63~2^63-1(-9223372036854775808到9223372036854775807)

#2


大哥:难道0x80000000不是负数吗?你算算看
10000000000000000..........0^_^第一位是符号位啦,long型范围是
-2^63~~~~~~2^63-1

#3


我也知道啊! 0x80000000 是这个范围吧?而且是正的。如果我用0x80000000的10进制数2147483648打也是负的。

#4


我怎么表示2147483648呢?

#5


long L = 0x80000000;
改成long L=0x80000000l;
long型后面需要加'l'

#6


同意楼上。