javase api doc primitive type
boolean、byte、char、double、float、int、long、short
参见:
[1]:https://docs.oracle.com/javase/7/docs/api/java/lang/package-summary.html
[2]:https://docs.oracle.com/javase/9/docs/api/java/lang/package-summary.html
[3]:https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/lang/package-summary.html
字节 | 位 | 最大值 | 最小值 | |
---|---|---|---|---|
byte | 1 | 8 | 27-1 | -27 |
char | 2 | 16 | 65535 | 0 |
double | 8 | 64 | (2-2-52 )·21023 | 2-1074 |
float | 4 | 32 | (2-2-23)·2127 | 2-149 |
int | 4 | 32 | 231-1 | -231 |
long | 8 | 64 | 263-1 | -263 |
short | 2 | 16 | 215-1 | -215 |
参见:
[4]:https://docs.oracle.com/en/java/javase/12/docs/api/constant-values.html#java.lang.Byte.MIN_VALUE
解读其中一个类型byte,占用1个字节,共计8bit(位),1bit用于符号位,7bit是数值位。
关于byte的最大值(27-1)、最小值(-27)为什么不是对称的?
简单回答是因为计算机使用“补码”进行计算,7bit有27=256种可能性,+0和-0的补码相同,所以多了一个负值的指标。