考研408-计算机组成原理-数据的表示和运算

一、基本概念
  1. ASCII编码

    • 0~31:控制字符
    • 32:空格SP
    • 32~126:95个可印刷字符(0、9分别为48和57,即011 0000和 011 1001)
    • 127:EDL码
  2. 国标码、区位内码、汉字内码

    • 国标码 = (区位码)16 +2020H
    • 汉字内码:方便计算机区分中文字符和英文字符(国标码)16 +8080H
  3. 正负数不同码制算术位移规则:

在这里插入图片描述

  1. 加减乘除运算

    1. 原码定点数的运算

      • 加:先判断符号位,不同则做减法;相同取绝对值符号位不变
      • 减:减数符号位取反,变成加法
      • 乘:符号位异或,数值绝对值相乘再与前者相乘。累加n次,位移n次
      • 除:数据位被除数减除数,余数为正商1两者左移后减除数,余数为负商0两者左移后加除数。符号由符号位异或取得。加减n+1或n+2次,移位n次
    2. 补码定点数的运算

      • 加:补码直接相加

      • 减:被减数与减数的机器负数相加

      • 乘:Booth算法,根据乘数末位以及附加位确定操作,初始附加位为0。累加n+1次,移位n次
        在这里插入图片描述

      • 除:符号位参加运算,被除数与除数同号就相减反正相加;余数与除数同号商1,左移一位减除数,余数与除数异号商0,余数左移一位加上除数。商末位一般置1。加减n+1次,移位n次

    3. 浮点数的运算

      • 加减:采用补码,分为以下几步
        1. 对阶:小阶向大阶对齐
        2. 尾数求和:按照定点数方式计算
        3. 规格化:左规或右规直至尾数最高位与符号位不同
        4. 舍入:“0”舍“1”入法、恒置“1” 法。用于对阶和右规
        5. 溢出判断:判断的是规格化之后的码阶
      • 乘除不考!
      • 4、5步顺序不影响

5.IEEE 754

在这里插入图片描述

在这里插入图片描述

  • 对于短浮点数和长浮点数,尾数值的最高位“1”隐藏

在这里插入图片描述

  • 规格化的段浮点数的真值** ( − 1 ) s × 1. M × 2 E − 127 (-1)^s\times1.M\times2^{E-127} (1)s×1.M×2E127**
  • 四种舍入方式
    1. 就近舍入:舍入为最近可以表示的数字
    2. 正向舍入:朝 + ∞ +\infty +方向舍入,取右边的数
    3. 负向舍入:朝 − ∞ -\infty 方向舍入,取左边的数
    4. 截去:朝0方向舍入,取绝对值小的那个数

6.浮点数运算结果的几种情况:

  • 阶码上溢出:一个正指数超过了最大允许值,浮点数发生上溢出;若结果是负数,则发生负上溢出。一般为软件故障,需要引入溢出故障处理程序来处理
  • 阶码下溢出:一个负指数比最小允许值还要小,浮点数发生下溢出。一般会把下溢出的值置0。不发生溢出故障
  • 尾数溢出:当尾数最高有效位有进位时,发生尾数溢出。此时进行“右规”操作:尾数右移一位,阶码加1,直到尾数不溢出。
  • 非规格化尾数:数值部分高位不是有效值时,尾数为非规格化形式,规范化。
二、理解的思想
  1. 基数r越大,可表示的浮点数范围越大,表示的个数也越多。但精度会下降
  2. 现代计算机都采用补码进行加减法,也就是都能用加法器实现
  3. 乘法运算可以通过加法和位移来实现。编译器可以将乘法运算转换为一个循环代码段,在循环代码段中通过比较、加法和位移实现
  4. 尾数为补码表示的浮点数,看符号位是否和尾数最高位相反判断是否已规格化
  5. ALU基本功能包括加减乘除四则运算,与或非、异或逻辑运算,以及移位、求补等操作
  6. 提高并行加法器速度的关键是加快进位产生速度和传递的速度
  7. 并行加法器中进位表达式: C i = G i + P i C i − 1 C_i=G_i+P_iC_{i-1} Ci=Gi+PiCi1( G i G_i Gi是进位产生函数, G i = A i B i G_i=A_iB_i Gi=AiBi P i P_i Pi是进位传递函数, P i = A i ⨁ B i P_i=A_i \bigoplus B_i Pi=AiBi)
  8. 字长相同时,浮点数取字长的一部分作为阶码,表示范围大于定点数,而也导致尾数部分的有效位减少;定点数字长的全部位都用来表示数值本身,精度比同字长的浮点数更大
  9. n位加法器实现的是模 2 n 2^n 2n无符号整数加法的运算,可以实现n为的无符号整数与有符号整数的加减
  10. float型变量在计算机中都被表示成IEEE 754 单精度格式
三、易错点
  1. 原码、反码、补码、移码中‘零’的表示方式分别为2/2/1/1

  2. 把符号“数字化”的数叫机器数,带+ 、-符号的数叫真值

  3. [y] 求[-y] 采用’连同符号位在内,每位取反,末位加1‘

  4. 算术位移和逻辑位移:后者有符号位移

  5. char -> int -> long -> doublefloat -> double 这两组类型转换没有损失

  6. int -> float 不会溢出,但可能有数据舍入;float -> int 可能溢出,也可能有舍入

  7. 浮点数规格化尾数的表示范围(r=2)

在这里插入图片描述

  1. 各编码方式的数值范围

在这里插入图片描述

  1. 定点运算中溢出的判断:

    • 一位符号位判断进位溢出:符号位的进位与最高数位的进位不同则溢出
    • 一位符号位判断溢出:如果补码加减法操作的两个数符号相同,结果又与原操作数的符号不同,即为溢出
    • 双符号位判断溢出:运算结果的两个符号位相同,表示未溢出;运算结果符号位不同,溢出,且最高符号位代表真正的符号
  2. 运算时寄存器标志位CF为1表示加法器最高位有进位,但对运算结果不说明什么

  3. 若溢出标志OF为1,表示产生了溢出,此时符号标志位SF表示错误的结果

四、冷知识
  1. 一般大型计算机采用浮点数,或同时采用定、浮点数;小型、微型、专用机等采用定点数
  2. 阵列乘法器实现乘法指令可以在一个时钟周期内完成
五、经典题目

(问答方式)

在这里插入图片描述

在这里插入图片描述

(原始的一定要掌握的进位函数)

在这里插入图片描述

在这里插入图片描述

(浮点数加减的标准过程-无溢出)

在这里插入图片描述

在这里插入图片描述

(IEEE 754 计算)

在这里插入图片描述

在这里插入图片描述

(int uint float IEEE )

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值