JAVA基本类型的取值范围
2016-08-29 16:19
246 查看
转载:点击打开链接
在讲解基本类型的取值范围之前,先讲讲二进制怎么转换为十进制(算取值范围的时候会用到)。
首先二进制有带符号的二进制和不带符号的二进制。
比如:1111
如果它是不带符号的二进制,那么它的十进制值 = 2^3 + 2^2 + 2^1 + 2^0 = 2^4 - 1 = 15
如果它是带符号的二进制,那么最高位(千位)就是符号位,1代表负数,0代表正数。那么负的二进制怎么换算为十进制呢?首先要把除符号位的所有位按位取反再加1(算出来是1001),然后在算它的十进制值 = -2^0 = -1
Java中基本类型的取值范围
其实,这些取值范围不需要死记,可以通过位数计算出来,下面举两个例子(byte和char)说明一下
byte的情况:
byte占8位,而且有正有负。最大值当然就是01111111 = 2^7 - 1。因为负的二进制有个按位取反再加1的操作,所以最小值是10000000,按位取反后为11111111,再加1后为110000000 = -2^7
char的情况:
char占16位,而且没有负值。所以最小值是0。最大值是1111111111111111 = 2^16 - 1
在讲解基本类型的取值范围之前,先讲讲二进制怎么转换为十进制(算取值范围的时候会用到)。
首先二进制有带符号的二进制和不带符号的二进制。
比如:1111
如果它是不带符号的二进制,那么它的十进制值 = 2^3 + 2^2 + 2^1 + 2^0 = 2^4 - 1 = 15
如果它是带符号的二进制,那么最高位(千位)就是符号位,1代表负数,0代表正数。那么负的二进制怎么换算为十进制呢?首先要把除符号位的所有位按位取反再加1(算出来是1001),然后在算它的十进制值 = -2^0 = -1
Java中基本类型的取值范围
基本类型 | 字节数 | 位数 | 最大值 | 最小值 |
byte | 1byte | 8bit | 2^7 - 1 | -2^7 |
short | 2byte | 16bit | 2^15 - 1 | -2^15 |
int | 4byte | 32bit | 2^31 - 1 | -2^31 |
long | 8byte | 64bit | 2^63 - 1 | -2^63 |
float | 4byte | 32bit | 3.4028235E38 | 1.4E - 45 |
double | 8byte | 64bit | 1.7976931348623157E308 | 4.9E - 324 |
char | 2byte | 16bit | 2^16 - 1 | 0 |
byte的情况:
byte占8位,而且有正有负。最大值当然就是01111111 = 2^7 - 1。因为负的二进制有个按位取反再加1的操作,所以最小值是10000000,按位取反后为11111111,再加1后为110000000 = -2^7
char的情况:
char占16位,而且没有负值。所以最小值是0。最大值是1111111111111111 = 2^16 - 1
相关文章推荐
- java基本类型(内置类型)取值范围
- java中基本数据类型取值范围
- JAVA基本类型取值范围
- JAVA基本类型取值范围
- java基本类型的默认值和取值范围
- java基本类型byte的取值范围
- Java基本数据类型的【取值范围】【占内存大小】【默认值】
- java中基本数据类型的取值范围
- java基本类型byte的取值范围
- Java 基本数据类型的取值范围。
- java基本类型取值范围及相关类型转换
- 4种编程语言基本数据类型及其取值范围整理(C++,Java,Python,Go)
- java基本类型取值范围及相关类型转换
- JAVA基本类型取值范围
- Java基本数据类型的取值范围
- [转]java基本类型(内置类型)取值范围
- java基本数据类型之整数型取值范围速算方法
- Java中的基本数据类型及其取值范围
- Java基本类型和取值范围
- java基本类型byte的取值范围