当前位置:主页 > 查看内容

c语言

发布时间:2021-05-05 00:00| 位朋友查看

简介:c语言 Float的存储方式 ?浮点型存储方式是根据IEEE电子和电子协会 754规定的-1)^S* M *2^E 符号位(Sign):S0为正数S1为负数 指数位Exponent用于存储科学计数法中的指数数据并且采用移位存储 尾数部分Mantissa:1 m 2 列 float a 5.5 //的储存方式 转换2进制为1……

c语言

Float的存储方式

?浮点型存储方式是根据IEEE(电子和电子协会) 754规定的,(-1)^S* M *2^E

符号位(Sign):S=0为正数,S=1为负数

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

尾数部分(Mantissa):1<= m >2

在这里插入图片描述

列:

float a = 5.5//的储存方式

转换2进制为101.1

符号s=0

尾数m=1.011

指数e(101.1—>1.001移了多少位)=2

M和E的存储方式有不同

因为1<= M<2,每次都有1,为了精度更高舍弃它,拿出来在补回去

E是无符的,8位时候取值范围0~255

??应为E可能是负数 列:0.5---->0.1(这个是二进制-1)==2^-1=2/1---->(-1) ^0 *1.0 *2^-1 ----->e=e+127储存存进

所以IEEE规定E存储时要加一个中间值8位的中间值为127

M=011------>自动补齐20个0

E=127+2=129------>转换乘二进制放入内存

放入内存中的样子
在这里插入图片描述

float取出

float取出的结果

1:E不为全0也不为全1

取出 E-128=E

依旧以5.5为例子

E=129-128=2

M拿出来补1

M=1.011

(-1)^S*M *2^E------>者就是取出的结果

2:E为全0,1

如果全0的时候那么E存进去是多少8位的中间值是127 E+127=0那么E==-127

2^-127次方你自己算算这个数字

所以IEE给出为0

那么全1也同理得出,全1就表示他是无穷大(正负取符号位)

全0和全1不就是微积分中极限吗哈哈哈哈

;原文链接:https://blog.csdn.net/Legwhite/article/details/115444596
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐