学习笔记 浮点数的表示

一:二进制定点法

              如:0.011       那么它表示1/8+2/8=3/8;

             可以看出它并不能精确地表示每一个小数值,在不提高位的情况下只能尽量选择最接近的值。比如1/5,十进制可以表示为0.2,但2进制不能精确表示。

二:IEEE浮点法:


公式:v=(-1)^s*M*(2^E);

v表示数值。

s表示符号,s=0时为正,s=1时为负。

M表示表示尾数,当为非规格化时,M=f,当为规格化时M=f+1;

E为阶码;


对于一个阶码位是k,尾数位为n的数有以下情形:

1.规格化时(即k位不全为0和全为1):

           阶码 E=e-bias;          其中e表示为k位无符号整数,bias表示偏量 bias=2^(k-1)-1;

           尾数 M=1+f;             其中f为小数。

2.非规格化时(即k位全为0的情况):

           阶码 E=1-bias;          注:这样表示的原因是为了和规格化所表示的数平滑连接

           尾数 M=f;

3.特殊值(即k为全为1的情况):

           这种情况下又分三种特殊值:

           当小数位全为0的时候,它的数值表示无穷大(小);

           当小数位不全为0的时候,它表示为NaN(not a number);

实例:

  假设有一个用8个位来表达的IEEE数,其中符号位占1位,阶码位占4位,小数位占3位

  0 0000 000    那么可以得出k=4;n=3  bias=2^(k-1)-1=7;

那么0 01001 101所表达的值可以这样计算:

          e=01001=9  -> E=e-bias=9-7=2;

          f=0.101=5/8 ->(规格化)M=1+f=1+5/8=13/8;

根据公式v=(-1)^s*M*(2^E):

           可得 V=1*(13/8)*2^2=6.25.




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值