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计算机组成原理】—原码的乘法运算(九)
计算机组成原理——浮点数加减运算&强制类型转换
计算机组成原理——浮点数加减运算&强制类型转换
837 0
计算机组成原理——浮点数加减运算&强制类型转换
|
存储
410计算机组成原理学习笔记——运算方法和运算电路(四)
410计算机组成原理学习笔记——运算方法和运算电路
206 1
410计算机组成原理学习笔记——运算方法和运算电路(四)
408计算机组成原理学习笔记——运算方法和运算电路(一)
408计算机组成原理学习笔记——运算方法和运算电路
378 1
408计算机组成原理学习笔记——运算方法和运算电路(一)
|
存储
410计算机组成原理学习笔记——运算方法和运算电路(三)
410计算机组成原理学习笔记——运算方法和运算电路(三)
569 1
410计算机组成原理学习笔记——运算方法和运算电路(三)
409计算机组成原理学习笔记——运算方法和运算电路(二)
409计算机组成原理学习笔记——运算方法和运算电路(二)
389 1
409计算机组成原理学习笔记——运算方法和运算电路(二)
|
存储 人工智能 BI
计算机组成原理<四>——数据的表示和运算(下)(三)
计算机组成原理<四>——数据的表示和运算(下)
计算机组成原理<四>——数据的表示和运算(下)(三)
计算机组成原理<三>——数据的表示和运算(上)
计算机组成原理<三>——数据的表示和运算(上)
计算机组成原理<三>——数据的表示和运算(上)
下一篇
DataWorks