int和long类型取值范围。 基本数据类型 byte , short , char ,int , long , float ,double,boolean类型取值范围

int和long类型取值范围。

1. int类型 ---------4字节(32位)

​ ------------------------------------------------------------------------------- 范围

①(无符号整型) -------------- unsigned int ***************************** 0 ~ 4294967295(2^32-1)

②(有符号整型)(一般省略signed) int ********** -2147483648(-2^31) ~ 2147483647 (2^31-1)

有符号,最高位是一个符号位,1代表负数,0代表正数,所以是31位,再减1,是因为正数还有个0。

2. long类型 ---------8字节(64位)

范围: long -9223372036854775808(-2^63) ~ 9223372036854775807(2^63-1)

【例1】

Long    long1 = 2147483648;   
  • 错误
  • 默认是int类型,2147483648为int类型,但是报错了,类型不匹配,而且超出int类型范围
Long    long2 = (long)2147483648;
  • 正确 , 2147483648本来就是int类型,强制类型转换成了long类型
  • 因为long的范围大,可以装下

【例2】

Long    long1 = 2147483648L;   
  • 正确
  • 在后面加L, 说明定义时就是long类型了,,没有写,就是默认int类型

3. 还有其他的一些范围(8中基本数据类型),只要记住类型的 字节数(乘以8 = 位数),就可以自己计算范围了。

在低字节转高字节时自动转换类型:byte < short < char = int < long , float < double

数据类型 字节数 二进制位数 范围 规律
整 型 byte 1 8 -128 ~ 127 -2^7 ~ 2^7-1
整 型 short 2 16 -32768 ~ 32767 -2^15 ~ 2^15-1
整 型 int 4 32 -2147483648~ 2147483647 -2^31 ~ 2^31-1
整 型 long 8 64 -9223372036854775808 ~ 9223372036854775807 -2^63 ~ 2^63-1
浮点型 float 4 32 -3.4E-38 ~ 3.4E+38 科学计数法: -3.4E-38表示-3.4×10^(-38)
浮点型 double 8 64 -1.7*10(-308)~1.7*10(308)
字符型 char 2 16 0~65535 0~2^16-1
布尔型 boolean 1 8 true或false true或false (java中没有0和1)

注: long型后如果不加L则默认为int型,浮点型如果不加F则默认为double型

4. 浮点型

类型 指数长度 尾数长度
float 8 位 23 位
double 11 位 52 位

float类型为例:
int和long类型取值范围。 基本数据类型 byte , short , char ,int , long , float ,double,boolean类型取值范围_第1张图片
从高位到低位排列

符号位:占一位,1表示负数,0表示正数

指数位:8位,二进制转换位转换成十进制后再减去127,即为指数。

尾数位:23位

同理,double 占8个字节,存储方式:1位符号位 + 11位指数位 + 52位尾数位

你可能感兴趣的:(JavaSE)