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

目录

1.浮点数的表示

2.浮点数的规格化

2.1.左规格化

2.2.右规格化

3.IEEE754

3.1.IEEE754的基本概念

3.2.IEEE754的表示范围

4.浮点数的运算


1.浮点数的表示

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

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

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

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

2.浮点数的规格化

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

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

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

2.1.左规格化

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

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

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.

①数符:表示正负

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

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

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

④偏置值为127D

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

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补救)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值