float和double取值范围

本文详细解析了Java中八种基本数据类型,分为整型、浮点型、逻辑型及字符型四大类。深入探讨了每种类型所占字节数、取值范围,特别是float与double的精度和范围,对理解数值运算至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在复习的时候发现基础太薄弱,对于float和double虽然了解所占字节数,但不知道他们的取值范围是多少,这对参加大厂笔试题时是十分不利的

1.八种数据类型的分类如下:
第一类:整型 byte short int long

第二类:浮点型 float double

第三类:逻辑型 boolean(它只有两个值可取true false)

第四类:字符型 char

2.各种基本数据类型所占的字节:
boolean 布尔型                 1/8 
byte 字节类型                    1
char 字符型                       2  一个字符能存储一个中文汉字
short 短整型                     2
int 整数类型                      4
float 浮点类型(单精度)  4
long 长整形                      8
double 双精度类型(双精度)  8


3.整型各基本数据类型的取值范围:
因为1byte = 8Byte ,(例如将3byte转化为二进制为:0000 0011 ,切记第一位为符号位,即0代表+,1代表-,剩下的七位是数据位)

所以byte取值范围是:-2^7~2^7-1,即:-128~127(因为0也包括在内,所以在正数范围是2^7-1)

同理short取值范围:-2^15~2^15-1

int取值范围:-2^31~2^31-1(-2147483648~2147483647)约21亿

long取值范围:-2^63~2^63-1

4.float和double取值范围和精度问题:
float和double的范围是由指数的位数来决定的。float的指数位有8位,而double的指数位有11位,分布如下:

float:
1bit(符号位)

8bits(指数位)

23bits(尾数位)

double:

1bit(符号位)

11bits(指数位)

52bits(尾数位)

范围问题:
float的指数范围为-2^7~2^7-1(即-128~127),而double的指数范围为-2^10~2^10-1(即-1024~1023),并且指数位是补码的形式来划分的。其

中负指数决定了浮点数所能表达的绝对值最小的数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。

float的范围为-2^128 ~ +2^128(-3.40E+38 ~ +3.40E+38)

double的范围为-2^1024 ~ +2^1024(-1.79E+308 ~ +1.79E+308)

精度问题:

float和double的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的

,故不能对精度造成影响

float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;

double:2^52 = 4503599627370496,一共16位,同理,double的精度为15~16位。

--------------------- 
作者:兮川 
来源:CSDN 
原文:https://blog.csdn.net/zc_ad/article/details/53404087 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值