目录

1.IEEE754标准格式

2.IEEE754标准中的符号码

3.IEEE754标准中的阶码

4.IEEE754标准中的尾数

5.IEEE754标准的真值计算

6.十进制转化成IEEE754标准浮点数

7.IEEE754标准浮点数的范围


1.IEEE754标准格式

在IEEE 754 格式浮点数分 3 个类型的浮点数:分别是 短浮点数 float,长浮点数 double,临时短浮点数 long double,由 3 个部分组成,分别是 符号码,阶码,尾数码,对应部分所占位数,如图所示:

2.IEEE754标准中的符号码

S是浮点数的符号位,占1位,安排在最高位,S=0表示正数,S=1表示负数。

3.IEEE754标准中的阶码

在 IEEE 754 浮点数标准中,阶码是用移码表示的,移码的定义:移码 = 真值 + 偏置值;

  • 普通情况下,移码的偏置值为 2^(n-1), 8 位的移码的偏置值为 2^(8-1) = 128D = 1000 0000B;例如:-127D = -0111 1111B , 其移码为 -0111 1111 + 1000 0000 = 0000 0001;
  • 在 IEEE 754 标准中,移码的偏置值是 2^(n-1)-1,8 位的移码的偏置值为 2^(8-1)-1 = 127D = 0111 1111B;

​ 例如:-126D = -0111 1110B ,其移码为 -0111 1110 + 0111 1111 = 0000 0001

注意:8 位中,-127D 和 128D 这 2 个阶码有特殊用途,一般不在正常讨论范围(-126~127),他们的移码分别是:

  • -127D:-0111 1111 + 0111 1111 = 0000 0000;
  • 128D:1000 0000 + 0111 1111 = 1111 1111;

4.IEEE754标准中的尾数

在 IEEE 754 浮点数标准中,尾数码部分采用原码表示,且尾数码隐含了最高位 1,在计算时我们需要加上最高位1,即 1.M,我们通过一个例子来表示:

​ 例如:有一个浮点数,真值为 0.11B ,那么其简略版的 IEEE 754 标准表示为(忽略 符号码 和 阶码):

S(1) E(8) 100 0000 0000 0000 0000 0000
​ 即当 0.11B 这个数在记录为 IEEE 754 标准浮点数时,会这样处理,令 0.11 = 1.1 * 2^(-1) ,尾数码是 1.1000…,然后隐含最高位1,即 1 .1000…。

5.IEEE754标准的真值计算

在上述内容的分析之后,再通过观察分析以下这个 IEEE 754 单精度浮点数格式表示的数,系统性了解如何计算出 IEEE 754 标准浮点数的真值:

1 100 0000 1010 0000 0000 0000 0000 0000
上数分别对应图1-1的中 S(符号码,0 正,1 负),E (阶码) ,M (尾数数值)为:

  • S(红色部分):1

1,表示这个浮点数是个负数;

  • E(蓝色部分):10000001

100 0000 1,阶码,其真值为 :移码 - 偏置值 => 1000 0001 - 0111 1111 = 0000 0010 = 2D;

  • M(黑色部分):010 0000 0000 0000 0000 0000

010 0000 0000 0000 0000 0000 表示这个浮点数的尾数部分,其真值为:被隐含的最高位1 + 0.尾数部分 => 1 + 0.01 = 1.01B;

通过对 S,E,M 的分析,我们可以计算出该浮点数的真值,即:

-1.01B * 2^10B = 1.25D * 2^2D = -5.0D或 -1.01B * 2^10B = -101.0B = -5.0D

6.十进制转化成IEEE754标准浮点数

同样地再用一个例子 十进制数转为 IEEE 754 浮点数的例子,加深对 十进制数 与 IEEE 754 浮点数之间的转换的理解。

​ 例如:将十进制数 -0.75 转为 IEEE 754 的单精度浮点数格式表示,分析过程如下:

过程A: -0.75D = -0.11B = -1.1B * 2^(-1B)

  • S:1

-0.75 为负数,故 S 符号码为 1

  • E:0111 1110

由 过程A 得,阶码的真值为 -0000 0001 ,其移码为:-0000 0001 + 0111 1111 = 0111 1110

  • M:100 0000 0000 0000 0000 0000

由 过程A 得,尾数码真值为:-1.1,隐含最高位 1 ,取小数部分,得100 0000 0000 0000 0000 0000

最终结果为:

1 011 1111 0100 0000 0000 0000 0000 0000

7.IEEE754标准浮点数的范围

最小绝对值
IEEE 754 单精度浮点型表示的的最小绝对值:尾数码全为 0 ,阶码真值为 -126D(对应的移码为 0000 0001B),此时整体的值为 1.0B * 2^(-126D)

最大绝对值
IEEE 754 单精度浮点型表示的的最大绝对值:尾数码全为 1 ,阶码真值为 127D(对应的移码为 1111 1110B),此时整体的值为 1.111…B * 2^(127D

 关于阶码真值为 -127 和 128
一般我们正常探讨的阶码区间是 -126D ~ 127D,而真值 -127D 的阶码为 0000 0000B,真值 128D 的阶码为 1111 1111B。

阶码真值为 -127
当阶码全为 0 ,尾数不全为 0,表示 非规格化小数 ,用来表示比最小绝对值还要小的数,即
尾数码 隐含的最高位不是 1,而是 0;
阶码真值 固定为 -126,而非 -127;
当阶码全为 0 ,尾数全为 0,表示 真值 +/- 0 ;
阶码真值为 128
当阶码全为 1 ,尾数全为 0,表示 正负无穷大 +/- ∞

当阶码全为 1 ,尾数不全为 0,表示非数值 NaN(Not a Number)

IEEE754标准表示浮点数(详解)相关推荐

  1. python中importlib模块安装_Python中标准模块importlib详解

    Python中标准模块importlib详解 模块简介 Python提供了importlib包作为标准库的一部分.目的就是提供Python中import语句的实现(以及__import__函数).另外 ...

  2. 简单有效的多标准中文分词详解

    简单有效的多标准中文分词详解 本文介绍一种简洁优雅的多标准中文分词方案,可联合多个不同标准的语料库训练单个模型,同时输出多标准的分词结果.通过不同语料库之间的迁移学习提升模型的性能,在10个语料库上的 ...

  3. Python标准库time详解

    Python标准库time详解 1.time库 时间戳(timestamp)的方式:通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量 结构化时间(struct_time ...

  4. IEEE-754标准与浮点数运算

    序言 本文主要简述了计算机中数字的表示方式,以及IEEE-754标准的由来及具体规定,最后简单的叙述了浮点数的运算规则.阅读这篇文章之前,最好有关于有关于机器数中的原码.反码.补码三种形式的一些概念. ...

  5. IEEE-754单精度浮点类型详解(完结篇)

    IEEE-754工业标准 前言 众所周知,计算机内部系统实际只能存储二进制数据,我们在计算机中所使用到的文档.图片.影音等数据,实际都是以二进制的数据形式存放在计算机的内存或者硬盘中,不管内存(内存条 ...

  6. Thymeleaf 标准表达式语法详解

    Thymeleaf 表达式汇总 首先先加入命名空间 <html xmlns:th="http://www.thymeleaf.org"> 编号 属性 描述 示例 1 $ ...

  7. SAP标准成本核算重要环节详解

    1.T-code:KSU5   建立和执行费用分摊循环   分摊(ASSESMENT)KSU5 可以传输初级成本要素和次级成本要素到接收方,发送者可以成本中心(COST CENTER) 和BUSINE ...

  8. Python中标准模块importlib详解

    模块简介 Python提供了importlib包作为标准库的一部分.目的就是提供Python中import语句的实现(以及__import__函数).另外,importlib允许程序员创建他们自定义的 ...

  9. k型热电偶材料_电热汇分享热电偶测温元件符号、标准及参数详解

    有人咨询电热汇问:热电偶测温元件符号.标准及参数是什么?今天来详细介绍一下. 一.热电偶测温元件符号 当导电物质处于温度时,其电子或空穴会随着温度梯度由高温区往低温区移动,由此产生的电荷堆积的现象称作 ...

最新文章

  1. 来学习几个简单的Hive函数吧!
  2. android Java BASE64编码和解码一:基础
  3. Qt 视图框架示例 Colliding Mice 的翻译
  4. 2017年10月21日 数据库基础三大范式
  5. manacher最长回文子串
  6. 如何通过Facebook幻灯片广告让销售量疯涨
  7. aws s3 cli_了解AWS CLI –使用AWS CLI与AWS S3存储桶进行交互
  8. 关于数组相关乱七八糟
  9. 关于【cocos2dx-3.0beta-制作flappybird】教程在3.2project中出现找不到CCMenuItem.h的解决方法...
  10. Kubernetes学习指南,轻松拥抱云原生
  11. 敷衍的面试|记录问题仅供参考,不代表最终答案
  12. IMPALA(Importance Weighted Actor-Learner Architectures)
  13. 2022年最值得去的100家互联网大厂排名出来了
  14. CVPR2022知识蒸馏用于目标检测:Focal and Global Knowledge Distillation for Detectors
  15. 搭建个人网站没有公网IP地址可以吗?
  16. linux数据异地备份,linux异地实时备份
  17. 读书笔记:《斯坦福极简经济学》
  18. 如何在路演中获得投资机会|兆骑科创
  19. 【DKN】(三)data_preprogress.py
  20. MLDonkey Web set

热门文章

  1. Bowtie使用介绍
  2. 简单工厂,工厂,抽象工厂
  3. Java简单案例练习
  4. Blackarch安装教程(非常详细)
  5. Java中 9 种常见的 CMS GC 问题分析与解决
  6. ttyS、tty,console和pty
  7. 秋季,高级灰这样搭配,怪不得这么潮!
  8. ad7793编程c语言,AD7793在高精度温控设备中的应用
  9. 量化交易之HFT篇 - 高频做市模型源码(.cpp文件)
  10. 软考高级(信息系统项目管理师)(四)--中间件技术