单精度 float

 

单精度介绍

  单精度数,是指计算机表达实数近似值的一种方式。VB中,Single(单精度浮点型)变量存储为 IEEE 32 位(4 个字节)浮点数值的形式,它的范围在负数的时候是从 -3.402823E38 到 -1.401298E-45,而在正数的时候是从 1.401298E-45 到 3.402823E38 。

单精度存储格式

   符号位S(sign) - 1bit
0代表正号,1代表负号。(+0、-0视为相同?(欢迎补充资料))

  

   指数位E(exponent) - 8bit

  E的取值范围为0-255(无符号整数),实际数值e=E-127。

  有时E也称为“移码”,或不恰当的称为“阶码”(阶码实际应为e)

   尾数位M(mantissa) - 23bit

  M也叫有效数字位(significant)、系数位(coefficient), 甚至被称作“小数”。

  在一般情况下,m=(1.M)2,使得实际起作用范围为1≤尾数<2。

  为了对溢出进行处理,以及扩展对接近0的极小数值的处理能力,IEEE 754对M做了一些额外规定,参见后文介绍。

单精度浮点数实例

  对于内部存储数据(00111111 01100110 01100110 01100110)2:

   符号位

  (最左侧)S=0。这表示是个正数

   指数

  (左侧第2-9位)E=(01111110)2=(126)10,所以s=S-127=-1。

   尾数

  (最后的23位)M=(1100110 01100110 01100110)2,m=(1.M)2=(1.7999999523162841796875)10

  该二进制小数转为10进制的计算方式为1 + (1/2+1/4) + (1/32+1/64) + (1/512+1/1024)……

   实际值

  N=1.7999999523162841796875*2-1=0.89999997615814208984375

  (其实,这个数据是0.9的单精度浮点数的实际内部存储,可以看到有一定的误差)

  这里继续给出另外几个数字的实例:

  |- 1 0 01111111 00000000000000000000000 |- 2 0 10000000 0000000000000

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值