1. 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
2. java的long_max什么意思
long_max 指long类型的最大值,对应的是long_min
3. 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)。
4. java的long 计算多少范围内是准确的
long最大值是9223372036854775807(2^64-1)。
long最小值是-9223372036854775808(-2^64)。
long的最大值写法:long l = 9223372036854775807L;
long的最小值写法:long l =- 9223372036854775808L;
备注:后面的一个L,必须加上去。