当前位置: 首页 > news >正文

计算机组成原理——第二章(19)

IEEE 754

这一小节我们介绍一下IEEE 754以及它的移码运算、标准

IEEE 754移码运算

大家还记得移码是怎么算出来的吗?得到补码之后将符号位取反就是移码,但其实移码的定义为:移码=真值+偏置值

普通情况:比如8位移码的偏置值=128D=1000 0000B,即2^{n-1}

IEEE 754:令偏置值=127D=0111 1111B,即偏置值为2^{n-1}-1,比如真值 -128=-1000 0000B

移码=-1000 0000+0111 1111,这里我听咸鱼学长是说,因为被减数比减数更小,由于移码的位数只有8位,所有的加减运算都会在背后进行了模2^{8},那么我们根据这个,就可以将被减数+2^{8}得到10111 1111,所以移码=-1000 0000+10111 1111=1111 1111,得到-128在IEEE 754表示下的移码为1111 1111;另外还有一个数比较特殊,-真值=127=-111 1111B,得到移码=-111 1111+10111 1111=0000 0000,。所以我们得到两个特殊的值,-128在IEEE 754 移码表示以为1111 1111,-127在IEEE 754移码表示为0000 0000

IEEE 754标准

IEEE 754标准类型有三种,分别是单精度浮点数float、双精度浮点数double、还有long double

各位需要记住他们对应的数符、阶码、尾数数值以及他们的偏置值,阶码部分是用移码表示的,按正常来说,当阶码位数为8位的时候,移码表示的范围是[-128,127],但是前文提到,-128和127是一个特殊的数,具体怎么处理,我们之后再补充,因此真值正常范围是[-126,127]

尾数部分用原码表示,我们之前提到过原码的规格化,就是规格化后的原码第一位数必须是一个有效值,也就是1,忘记的同学可以回复一下之前的文章,计算机组成原理——第二章(18),所以我们就默认尾数第一位是1

 例:将十进制数 -0.75转换为IEEE 754的单精度浮点数格式表示

我们想要IEEE 754的表示形式需要知道以下几个参数:数符、移码、尾数,(-0.75)转换成二进制为(-0.11),因为尾数第一位是1,所以我们将0.11左移得到(-1.1)*2^{-1},所以我们就得到了数符=1,尾数真值=.10000000...(隐含最高位1),阶码=-1,移码=阶码真值+偏置值=-1+0111 1111=0111 1110(凑足8位)

所以IEEE 754的单精度浮点数表示=1 01111110 10000000000000000000000

例:IEEE 754 的单精度浮点数 C0 A0 00 00 H的值是多少

C0 A0 00 00 H ->1100 0000 1010 0000 0000 0000 0000 0000

数符=1

移码=1000 0001=真值+偏置值,真值=1000 0001-111 1111=(2)

尾数=.010000....0(隐含最高位1)尾数真值=(1.01)=1.25

浮点数真值=-(1.25)*2^{2}=-1.25*4=-5

 接下来我们讲一下阶码全为0和全为1的情况:

阶码E全为0,尾数M不全为0时,表示非规格化小数\pm(0.x...xx)*2^{-126}

阶码E全为0,尾数M全为0时,表示真值\pm0

阶码E全为1,尾数M全为0时,表示无穷大/无穷小

阶码E全为1,尾数M不全为0,表示非数值“NaN”

知识回顾

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 基于SpringBoot的考研资讯平台设计与实现
  • 关于Python爬虫的基础知识
  • 如何实现过滤器、拦截器和全局异常捕获?
  • 使用dcm数据训练nnunet
  • FreeRTOS学习笔记(八)事件
  • echarts 3D地图
  • 可信的人类与人工智能协作:基于人类反馈和物理知识的安全自主驾驶强化学习
  • JAVA开源项目 校园管理系统 计算机毕业设计
  • python fastapi 打包exe
  • mysql笔记7(单表查询)
  • Python知识点:如何使用Python进行日志处理与分析
  • 2024icpc南京站
  • go-zero的快速实战(完整)
  • 基础 Web 开发
  • R134a制冷剂简介
  • Cookie 在前端中的实践
  • ERLANG 网工修炼笔记 ---- UDP
  • js正则,这点儿就够用了
  • SQLServer之索引简介
  • Vue组件定义
  • XForms - 更强大的Form
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 彻底搞懂浏览器Event-loop
  • 规范化安全开发 KOA 手脚架
  • 今年的LC3大会没了?
  • 微信小程序设置上一页数据
  • 物联网链路协议
  • 想写好前端,先练好内功
  • 消息队列系列二(IOT中消息队列的应用)
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​经​纬​恒​润​二​面​​三​七​互​娱​一​面​​元​象​二​面​
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #pragma预处理命令
  • ${ }的特别功能
  • (¥1011)-(一千零一拾一元整)输出
  • (2)Java 简介
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (Qt) 默认QtWidget应用包含什么?
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .dwp和.webpart的区别
  • .gitignore
  • .Net - 类的介绍
  • .NET COER+CONSUL微服务项目在CENTOS环境下的部署实践
  • .NET多线程执行函数
  • @Mapper作用
  • @property括号内属性讲解
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • @select 怎么写存储过程_你知道select语句和update语句分别是怎么执行的吗?
  • [ C++ ] STL---仿函数与priority_queue
  • []error LNK2001: unresolved external symbol _m
  • [1204 寻找子串位置] 解题报告