408计算机组成原理学习笔记——浮点数的表示和运算

简介: 408计算机组成原理学习笔记——浮点数的表示和运算

1.浮点数的表示c50b3b5166ba45a089ed346ba59a83c0.png

1.阶符和阶码的值表示浮点数的小数点的实际位置,并且反应浮点数表示范围

阶码的底通常为2,但也可以为2的倍数

2.尾数(小数)的位数反映浮点数的精度,数符表示正负

3.尾数给出小数,然后根据阶码的大小小数点向前或向后移动4eb981ff72414b0383eb77f7c5f8f606.png

2.浮点数的规格化

对于尾数部分,尾数的数符(表示正负)保留,对于尾数的数值部分需要进行规格化提高精度

1.原码表示的尾数规格化:尾数的数值最高位必须是1

2.补码表示的尾数规格化:尾数的数值最高位和尾数的符号位必须相反

2.1.左规格化

浮点数运算的结果是非规格化数(数值位第一位为0):尾数算数左移一位,价码减一,直到尾数最高位(数值位)是有效值(非零)213e6c9a2c2d460fa8596634c22a4861.png

1.算数左移(小数点右移):每左移1位则表示该数乘以2,则需要阶码减1(即除2),将其值还原

2.相当于3 = 0.003 * 10 ^ 3 的科学计数法算数左移4位(小数点右移4位)

= 3.0 * 10 ^ (3 - 0) = 3 * 10 ^ 0 = 3

2.2.右规格化

1.浮点数运算的结果出现溢出(小数点一定要在第一个非0数值位后面):尾数算术右移一位,阶码加一

2.300 * 10 ^ 3 = 300 000 进行右规 → 3 * 10 ^ 5 = 300 000

f96fa0b5e2fb4351bd3c75dd607aa9a8.png

3.IEEE754

3.1.IEEE754的基本概念

1.移码:补码的基础上,符号位取反

移码的定义:移码 = 真值 + 偏置值(偏置值取 2 ^ (n - 1),n为真值位数)

例如:8bit真值,偏置值为 2 ^ 7 = 128D = 1000 0000B

①真值 - 127 = -1111 1111B

移码 = -1111 1111 + 1000 0000 = 0000 0001

②真值 -3 = -11B

移码 = -11 + 1000 0000 = 0111 1101

2.IEE754中的移码的偏置值为2 ^ (n -1) -1

例如:8bit真值,偏置值为 2 ^ 7 - 1 = 127D = 0111 1111B

①真值 - 128 = -1000 0000B

移码 = -1000 0000 + 0111 1111 = 1111 1111

②真值 -127 = -0111 1111B

移码 = -111 1111 + 0111 1111 = 0000 0000

3.1884e07017fb4e529b6afe41e0c68737.png

①数符:表示正负

②阶码:用移码表示,阶码全0和全1用作特殊用途,因此,真值的正常范围为 -126 ~  +127。阶码真值 = 移码 - 偏置值

可以将移码看作无符号数,用该无符号数减去偏置值,即可确定阶码真值

③尾数:隐含最高位1,即实际总共24位(1.XXXXXXX)

④偏置值为127D

⑤真值范围:(正负) 1.M * 2 ^ (E(阶码真值) - 127(偏置值))

bd600fecdcc64a43add3e7b4de0206b4.png

a009439a854940f6b87181e6be5e0894.png

3.2.IEEE754的表示范围

1.最小绝对值:尾数全0,阶码真值最小 -126,真值为(1.0)* 2 ^ (-126)(二进制)

2.最大绝对值:尾数全1,阶码真值最大 127,真值为(1.11111……) * 2 ^ (127)

3.阶码全0,尾数不全0时,表示非规格化小数,(正负)(0.XXX……) * 2 ^(-126)

非规格化小数指的是数值的最高位不为1,此时能表示比最小绝对值更小的数字

阶码真值固定为126 ,而非继续采用阶码真值 = 移码 - 偏置值的方式确定

4.阶码全0,尾数全0时,表示真值(正负)0

5.阶码全1,尾数全0时,表示(正负)无穷大

6.阶码全1,尾数不全0时,表示非数值NaN(NOT A NUMBER)非法运算(0/0)

4.浮点数的运算

1.对阶:阶数更小的向结束更大的对齐。方便对尾数进行处理,算数右移

2.尾数加减:两个尾数进行加减得到结果

3.规格化:

①出现0.XXXXX→左规X.XXXX

②出现XX.XXX→右规→X.XXXX

4.舍入:浮点数位数有限

5.判断溢出:运算后阶码超出范围,则发生溢出

溢出处理:

①零舍一入:尾数右移时,被舍去的是0,则不进行操作;被舍去的是1,则在尾数的末位+1,但是,可能会导致右规  

②恒为1:尾数右移时,若产生舍去,不管0还是1,尾数的末位都置为1,可能变大可能变小

阶码溢出一定发生溢出,但是尾数溢出不一定发生溢出(可以通过3、4补救)


b2dfb26e92dd4ba08fa8d8907f6c827e.png





相关文章
|
算法 网络虚拟化 内存技术
408王道计算机组成原理强化——存储系统大题
408王道计算机组成原理强化——存储系统大题(下)
4386 3
408王道计算机组成原理强化——存储系统大题
|
存储 算法 固态存储
【计算机组成原理】存储系统
【计算机组成原理】存储系统
8708 0
【计算机组成原理】存储系统
|
编译器 C语言 C++
【C语言】malloc()函数详解(动态内存开辟函数)
【C语言】malloc()函数详解(动态内存开辟函数)
5016 2
计算机组成原理——浮点数加减运算&强制类型转换
计算机组成原理——浮点数加减运算&强制类型转换
2086 0
计算机组成原理——浮点数加减运算&强制类型转换
|
人工智能 Cloud Native Java
2025 开源之夏开启报名|AI + 云原生,10个开源项目、24个课题任您挑选
“开源之夏”是由中国科学院软件研究所发起的暑期活动,旨在鼓励高校学生参与开源软件开发与维护。活动联合各大开源社区提供项目任务,面向全球年满18周岁的高校学生开放报名。每位学生最多可申请一个项目。阿里云云原生提报了包括Apache Dubbo、RocketMQ、Seata等在内的10个开源项目共24个课题,涵盖技术优化、功能实现及AI应用等领域。活动流程包括选题、申请、开发与结项考核,具体信息可访问官网了解。
3768 32
|
存储 域名解析 缓存
DNS解析过程
DNS(域名系统)解析是将域名转换为IP地址的过程,对互联网运行至关重要。解析方式主要包括递归查询和迭代查询。递归查询由本地DNS服务器代为完成,简化客户端操作;迭代查询则需客户端逐级向根DNS服务器、TLD服务器和权威DNS服务器请求。过程中涉及缓存机制以提高效率,如客户端与本地DNS服务器缓存及TTL值管理。示例中,解析www.example.com需依次通过本地、根、TLD和权威DNS服务器获取IP地址。
1479 18
|
机器学习/深度学习 存储 人工智能
【AI系统】为什么 GPU 适用于 AI
本文探讨了GPU在AI计算中的应用,从卷积计算的基本原理入手,解析了GPU线程分级与AI计算模式的关系,以及矩阵乘法如何通过GPU编程提升算力利用率。文章还介绍了计算强度的概念,分析了不同数据结构对计算强度的影响,以及GPU中Tensor Core的作用,强调了在不同存储位置下,找到计算强度与矩阵大小的最佳平衡点对AI计算系统优化的重要性。
1394 2
|
JSON API 数据安全/隐私保护
1688 商品详情API接口(1688API 系列)
1688 商品详情 API 接口是电商应用开发中的关键工具,尤其适用于整合 1688 平台的商品数据。该接口提供商品的基础属性、价格、库存、图片、描述及商家信息等多维度数据,支持 HTTP GET 和 POST 请求方式。通过必填的商品 ID 及可选的语言参数等,开发者能精准获取并展示商品详情,提升用户体验和决策效率。响应数据包括商品名称、类目、品牌、价格区间、库存、图片列表、详细描述及商家信息等,帮助技术员高效集成接口,实现与 1688 平台的无缝对接。供稿者:Taobaoapi2014。
|
安全 网络安全 网络架构