⑴ java中long类型是8字节,64位的,为什么long b = 0xfffffffff;(7个f)会提示越界错误呢
那不仅是7个f,你自己数一下。此时如果想不报错,在数字的后面加 L,小写也可以,但不建议,因为容易和1混淆。
⑵ java的long_max什么意思
long_max 指long类型的最大值,对应的是long_min
⑶ java 都说long最大64位,但是为什么在处理2进制转换为long型时,只能转换19位数字
所谓的二进制是只有0和1 而十进制是0-9,long 64位表示的是二进制64位,比如4个二进制0001表示十进制数1,0010表示十进制2
⑷ JAVA 中long型超过最大值该怎么办后用java程序怎么写让它返回原来的值
精度变了之后没法子变回去,如果是超过了long型的最大值,可以用BigDecimal类型,他的精度要比long型高,具体的你可以自己查查
⑸ Java基本类型中的long存储范围是多少
-9223372036854775808~9223372036854775807
publicclassHello{
publicstaticvoidmain(String[]args){
System.out.println(Long.MIN_VALUE);
System.out.println(Long.MAX_VALUE);
longminValue=0x8000000000000000l;
longmaxValue=0x7fffffffffffffffl;
System.out.println(minValue);
System.out.println(maxValue);
}
}
在java中long型是64位的。
⑹ 1 JAVA已知long型的最大值为9223372036854775808,求9223372036854775808+9223372036854775808 为什么等于-
溢出了
long最大不是9223372036854775808而是9223372036854775807
因为最高位是符号位,两个相加就溢出了,符号位本来是正,所以是0,但是相加后溢出,符号位变成1,所以就成负数了
Long.MAX_VALUE=9223372036854775807
其二进制值为:0x7FFFFFFFFFFFFFFF,因为最高位是0,留给符号位,其他位为1
如果让Long.MAX_VALUE+Long.MAX_VALUE
则看二进制值,相当于左移一位,变成:
0xFFFFFFFFFFFFFFFE
最低位为0,其他位为1,第一位符号位为1,则为负数,下面各位取补码,即取反+1,得0x10,为2,所以结果是-2
⑺ java中long类型的取值范围到底是多少呢
范围:-9223372036854775808到9223372036854775807
解释:long类型是64位的也就是 ”-2^64“ 到”2^64 -1“.
在定义long类型时,如果数据类型超过int类型的取值范围,数据后面要加l或L,不超过则不需要加。
byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1)
short的取值范围为-32768~32767,占用2个字节(-2的15次方到2的15次方-1)
int的取值范围为(-2147483648~2147483647),占用4个字节(-2的31次方到2的31次方-1)
long的取值范围为(-9223372036854774808~9223372036854774807),占用8个字节(-2的63次方到2的63次方-1)。
⑻ java中long类型的取值范围到底是多少
范围:-9223372036854775808到9223372036854775807
解释:long类型是64位的也就是 ”-2^64“ 到”2^64 -1“.
⑼ java 强类型转换 long最大值 到int long l = Long.MAX_VALUE; int i = (int)l; 请问i值,为什么高手回答
因为long 型整数是64位 而Int 型整数是32位
int f = (int)d; 当你把一个long型整数强制转化为一个Int型整数时,只能截取最低的32位
而Long.MAX_VALUE在Java中的值是2的63次方,即011111111111111(63个1) 最前面的是符号位 0为正数,1为负数,int截取了后面的32位数 为111111111(32个1) 这个值就是-1,因为负数是用补码表示的111111111(32个1) 正好就是-1的补码,所以 最终的结果就是-1.
至于Double类型,因为其在内存中存储的方式与int型有很大区别,就需要另外考虑了.