Java中的基本数据类型的范围,在底层如何表示?
int类型在底层使用补码表示,是【-21亿多~21亿多】的范围:https://www.cnblogs.com/biehongli/p/12370693.html
- 因为int占4字节,32位,最高位是符号位0/1
- 正数最大011111...111,计算2^0+2^1+2^2+2^3...+2^30,等比数列求和得:2^31-1
- 负数111111...111,为-(2^31-1)
- 0的表示为:000000...000
- 还剩一个100000...000,本来也表示0,但0有两种表示太浪费了
- 因此100000...000用来表示负数(因为符号位是1),由于100000...000本身表示2^31,因此用来表示-2^31
- 其实10000...000的真正补码表示为:1100000...000,但最高位1溢出了
- 其实10000...000的真正补码表示为:1100000...000,但最高位1溢出了
补充:Java基本数据类型的大小 https://blog.csdn.net/m0_37479246/article/details/79492828
1.字节:byte:用来计量存储容量的一种计量单位;位:bit
2.一个字节等于8位 1byte = 8bit
char占用的是2个字节 16位,所以一个char类型的可以存储一个汉字。
整型:
byte:1个字节 8位 -128~127
short :2个字节 16位
int :4个字节 32位
long:8个字节 64位
浮点型:
float:4个字节 32 位
double :8个字节 64位
注:默认的是double类型,如3.14是double类型的,加后缀F(3.14F)则为float类型的。
char类型:
char:2个字节。
Boolean 类型
boolean: (true or false)(并未指明是多少字节 1字节 1位 4字节)
补充:BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算。

浙公网安备 33010602011771号