Java基本数据类型有哪些,取值范围分别是什么
byte: 1字节 8位 -2^7~2^7-1 //这么理解吧,一个字节可以表示多少个数呢?2^8=256个数,那么正数最大可以表示到多少,01111111=127,所以正数的上限我们就确定了,那么根据钟表原则,正数+1得到128,此时钟表超出溢出,来到它的最小值,即负数范围,得到此128应该是-128,此后再+1,就又是指针那么正常转了.
short: 2字节 16位 -2^15~2^15-1
int : 4字节 32位 -2^31~2^31-1
long: 8字节 64位 -2^63~2^63-1
float: 4字节 32位 -2^128~2^128
double:8字节 64位 -2^1024~2^1024
char: 2字节 16位
Boolean: 1字节 8位
种类-----符号位-----指数位-----尾数位
float---第31位-----第30-23位--第22-0位
double--第63位-----第62-52位--第51-0位
取值范围主要看指数部分:
它们都是按IEEE754标准存放的,即SEM,标准中规定的是:
float的指数部分有8位,由于是有符号类类型,所以,得到的指数范围是-128~128
double的指数部分有11位,由于是有符号类类型,所以,得到的指数范围是-1024~1024
精度(有效数字)主要看尾数部分:
float的尾数位有23位,因为2^23=8388608,对应7个有效数字,所以精度能保证到小数点后7位
同理,double的精度能保证到小数点后16位。
这一路,灯火通明