float存储规则

float是C语言的基本数据类型中的一种,表示单精度浮点数。C语言规定单精度浮点型在内存占用4个字节,精度为7位,取值范围为:3.410^-38 ~ 3.410 ^38 或者 -(3.410 ^-38 ~ 3.410 ^38)。依据IEEE规定 :float在存储中都分为三个部分:

1、符号位(Sign) : 0代表正,1代表为负

2、指数位(Exponent):用于存储科学计数法中的指数数据,并且采用移位存储

3、尾数部分(Mantissa):尾数部分

其中float和double的存储方式如下图所示:

数据类型符号位指数尾数
float1bit8bit23bit
double1bit11bit52bit

float在内存中的存储规则

计算机只能识别二进制,所以float类型在内存中也是通过二进制存储的。因此float类型需要转换为二进制形态,转换步骤如下:

1)先将这个实数的绝对值化为二进制格式。

2)将这个二进制格式实数的小数点左移或右移n位,直到小数点移动到第一个有效数字的右边。

3)从小数点右边第一位开始数出二十三位数字放入第22到第0位。

4)如果实数是正的,则在第31位放入“0”,否则放入“1”。

5)如果n 是左移得到的,说明指数是正的,第30位放入“1”。如果n是右移得到的或n=0,则第30位放入“0”。

6)如果n是左移得到的,则将n减去1后化为二进制,并在左边加“0”补足七位,放入第29到第23位。如果n是右移得到的或n=0,则将n化为二进制后在左边加“0”补足七位,再各位求反,再放入第29到第23位

注意:将绝对值转换为二进制之后,小数点左移n位,n即为该数的指数,指数为阶码为n+127。这其实就是第5和6步骤运算得到的结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值