在计算机中浮点数是如何存储的?

在计算机中存储数据都是以0、1来表示,整数可以很容易地在十进制和二进制之间切换,但小数就不那么容易了-----因为小数点的存在。在计算机语言当中,人们将数据根据是否有小数点分为了整型以及浮点类型。整型的存储是简单的,但浮点类型的存储是一个很大的挑战(存储一个小数)。人们为了方便存储小数,通常采用科学记数法来表示浮点数,比如3.12 x 10 ^2, 5.874545 x 10 ^ 5等。这样的好处是:小数点固定了。
例如:9.5的二进制形式为1001.1,按科学计数法为:1.0011 x 2^3
所以公式为
X = a * 2^e
a为浮点数的二进制表示,范围为[1,2) ;
e为小数点移动的位数;

float类型**
对于float型数据,其长度是4个字节,右边23位用来表示小数点后面的数字,中间8位用来表示e,左边一位用来表示正 负。
double类型
对于double型数据,其长度是8个字节,右边52位用来表示小数点后面的数字.中间11位表示e,左边一位用来表示正负。如下图:

                   |  符号位 | 指数位 |   尾数  |  指数偏移量

| float类型 | 1位 | 8位 |23位 | 127
|double类型 | 1位 | 11位 |51位 | 1023

指数偏移量:2 ^(k - 1),k 为指数为个数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值