前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浮点数基础

浮点数基础

作者头像
FPGA开源工作室
发布2020-02-25 14:02:12
1.5K0
发布2020-02-25 14:02:12
举报

浮点数基础

浮点数,是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学计数法。

1 浮点数基础知识

浮点数由四部分构成:符号位(Sign Bit)、尾数(Mantissa)、基数(Radix)和指数(Exponent)。根据《IEEE Standard 754 for Binary Floating-Point Arithmetic》的定义–二进制标准浮点数,基数为2。s、m、e分别为符号数、尾数和指数,n为相应的浮点数值。

IEEE-754规定了三种浮点数:单精度(float)、双精度(double)和扩展精度。 其中单精度为32bit,其中包含1位符号位S,8位指数位E和23位尾数位M。S、E、M为相应的二进制序列。

S: 正数 0.1xxxxxx 负数 1.1xxxxxx M: 表示小数点之后的二进制尾数。 M为0110表示:二进制.0110 E: 规格化(normalized) 非规格化(denormalized)

2 规格化浮点数

E表示的二进制不全为0也不全为1时该浮点数为规格化浮点数。

e表示偏置(Biased) |E|表示E的二进制整数 bias表示偏置 k为指数位宽 对于单精度浮点数来说k为8,所以bias为127。E="10001000"为例,|E|=136,故e为9。 对于规格化浮点数,标准规定尾数位小数点左侧的隐含位为1,所以: m = |1.M| 例如M="10010…0"则1.M="1.10010…0"所以m=1.5625

s=0 m = 1.5625 e =9 n =55.5112 单精度浮点数的公式可表示为:

3非规格化浮点数

E的二进制位全为0时该浮点数为非规格化浮点数。 bias=127

单精度非规格化浮点数公式:

-0.0 符号位为1,其余位为0. +0.0全部为0.

4特殊数值

E的二进制位全为1时为特殊数值。 M全0,n无穷大 M全1,S为1,n负无穷大 M全1,S为0,n正无穷大 M不全为0和1,n NaN(Not a Number)

5 双精度浮点数

IEEE-754定义双精度浮点数共64bit 。1位符号位S,11位指数位E和52位尾数位M。同样可以划分为规格化、非规格化和特殊数值。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FPGA开源工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 浮点数基础
    • 1 浮点数基础知识
      • 2 规格化浮点数
        • 3非规格化浮点数
          • 4特殊数值
            • 5 双精度浮点数
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档