软考知识点---02进制与码制---02浮点数的运算

 (五)定点数与浮点数

1、定点数

(1)定义

  • 小数点的位置固定不变的数

(2)分类

  • 定点整数:纯整数

  • 定点小数:纯小数

  • 当机器字长为n时,定点数的补码和移码可表示2^{n-1}个数,而其原码和反码只能表示2^{n-1}-1个数(0的表示占用了两个编码),因此定点数所能表示的数值范围比较小,运算中很容易因结果超出范围而溢出,所以才引入浮点数

2、浮点数

(1)定义(科学表示法)

  • 小数点位置不固定的数,它能表示更大范围的数

(2)表示格式

  • N = 2^{E}\times F(E是阶码,F是尾数)

  • 例如:二进制数1010.0101=2^{4}x0.10100101=2^{6}x0.0010100101

  • 在浮点数表示法中,阶码通常为带符号的纯整数,尾数为带符号的纯小数

  • 表示格式:阶符+阶码+数符+尾数

  • 标准表示:小数点永远在最低有效位后面,如:134=1.34*100

(3)注意事项

  • 浮点数表示不唯一,随小数点位置而改变

  • 浮点数所能表示的数值范围主要由阶码决定,所表示数值的精度则由尾数决定

(六)机器数的运算

1、加减运算

  • 减法一般转化为加法

(1)原码加减法

  • 相加的原码符号相同:只需将数值部分直接相加,符号是一样的

  • 相加的原码符号相异:应进行减法运算。比较两个数绝对值的大小,将两个绝对值进行作差,绝对值大的减绝对值小的(只有绝对值部分参与计算),结果的符号取绝对值大的符号

  • 原码表示的机器数进行减法运算是很麻烦的,所以在计算机在很少被采用

(2)补码加减法(重要)

  • 补码加法:[X+Y]补=[X]补+[Y]补

  • 补码减法:[X-Y]补=[X]补+[-Y]补

  • 由[X]补求[-X]补的方法是:[X]补的各位取反(包括符号位),末尾加“1”

  • 多数计算机都采用补码加减运算法

 

2、溢出与判定(重要)

  • 确定运算的字长和数据的表示方法后,数据的范围也就确定了

  • 运算结果超出范围会发生溢出,计算结果错误

  • 只有当两个相同符号的数相加(或者是相异符号数相减)时,运算结果才有可能溢出

  • 常用的溢出检测机制主要有进位判决法双符号位判决法

  • 双符号位判决法

    • 采用两位表示符号位,即00表示正号,11表示负号

    • 若运算结果的两个符号分别用S2和S1表示,则判别溢出的逻辑表示式为:VF=S2⊕S1

3、浮点运算

(1)加减运算

  • 设有浮点数X=M\times2^{i},Y=N\times 2^{j},求X±Y的运算过程如下:

  • 对阶:使两个数的阶码相同。令K=| i - j |,把阶码小的数的尾数右移K位,使其阶码加上K

  • 求尾数和(差)

  • 结果规格化并判溢出:若运算结果所得的尾数不是规格化的数,则需要进行规格化处理。当尾数溢出时,需要调整阶码

  • 舍入处理的方法如下:

    • 截断法:将要保留的数据末位右边的数据全都截去,不管数据是0还是1

    • 末位恒1法:将要保留的末位数据恒置1,不管右移丢掉的数据是0还是1

    • 0舍1入法:舍去的数据为0时,保持末位原始状态。若舍去的数据为1,则将末位加1。这类似于十进制中的四舍五入。但在当数据为0.1111…1,即在尾数全为1的特殊情况下,这种舍入会再次产生溢出。遇到这种情况可用硬件判断,并在舍去1时末位不再加1

  • 溢出判别:以阶码为准。若阶码溢出,则运算结果溢出;若阶码下溢出,则结果为0;否则结果正确无溢出

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盾山狂热粉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值