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
10000000000000000..........0^_^第一位是符号位啦,long型范围是
-2^63~~~~~~2^63-1
#3
我也知道啊! 0x80000000 是这个范围吧?而且是正的。如果我用0x80000000的10进制数2147483648打也是负的。
#4
我怎么表示2147483648呢?
#5
long L = 0x80000000;
改成long L=0x80000000l;
long型后面需要加'l'
改成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
10000000000000000..........0^_^第一位是符号位啦,long型范围是
-2^63~~~~~~2^63-1
#3
我也知道啊! 0x80000000 是这个范围吧?而且是正的。如果我用0x80000000的10进制数2147483648打也是负的。
#4
我怎么表示2147483648呢?
#5
long L = 0x80000000;
改成long L=0x80000000l;
long型后面需要加'l'
改成long L=0x80000000l;
long型后面需要加'l'
#6
同意楼上。