数据的运算摘要

  • 定点运算器
    • 定点数的表示
      • 原码、反码、补码、移码。
      • 通常采用补码进行运算,便于将减法转换为加法,且符号位与数值位一同参与运算。
    • 定点加/减法运算
      • 补码加减法规则:[X] 补 + [Y] 补 = [X+Y] 补;[X] 补 - [Y] 补 = [X] 补 + [-Y] 补。
      • 溢出判断
        • 双符号位法(变形补码):若结果双符号位不同(如 01 或 10),则发生溢出。
        • 单符号位与进位判断法:若最高位(符号位)进位与次高位(数值最高位)进位不同,则发生溢出。
      • 并行加法器
        • 串行进位(行波进位)加法器:结构简单,但运算速度慢,进位信号逐级传递。
        • 先行进位加法器:通过逻辑电路并行产生进位信号,运算速度快,但硬件复杂。
    • 定点乘法运算
      • 原码一位乘法:符号位单独处理,数值位取绝对值相乘,最终符号位由两操作数符号位异或决定。
      • 补码一位乘法(Booth 算法):直接对补码进行乘法运算,可处理负数,且能有效处理连续的 0 或 1。
      • 阵列乘法器:通过硬件并行实现乘法,速度快,但硬件开销大。
    • 定点除法运算
      • 原码除法
        • 恢复余数法:试商后若余数为负,需加除数恢复余数。
        • 不恢复余数法(加减交替法):试商后若余数为负,直接加除数,无需恢复。
      • 补码除法:基于不恢复余数法思想,对补码进行除法运算。
  • 浮点运算器
    • 浮点数的表示
      • 符合 IEEE 754 标准,由符号位 S、阶码 E(移码表示,通常为偏置常数加上真实阶码)和尾数 M(原码纯小数,通常隐含最高位 1)组成。
      • 格式:(-1)^S × M × 2^E。
      • 规格化:尾数最高有效位为 1(对于非零数),确保浮点数表示的唯一性。
    • 浮点加/减法运算步骤
      • 对阶:使两浮点数的阶码相等,通常将小阶码向大阶码对齐,同时尾数右移。
      • 尾数加减:对齐后的尾数进行加减运算。
      • 规格化
        • 左规:若尾数运算结果的绝对值小于 1/2(如 0.01xxxx),则左移尾数,同时阶码减去相应位数,直到尾数规格化。
        • 右规:若尾数运算结果溢出(如 1.xxxx),则右移尾数一位,同时阶码加 1。
      • 舍入:对因对阶或规格化而截断的尾数进行舍入处理,常用方法有“0 舍 1 入法”、“恒置 1 法”等。
      • 溢出判断:判断最终阶码是否超出允许范围,进行溢出或下溢处理。
    • 浮点乘/除法运算步骤
      • 阶码运算:乘法时阶码相加,除法时阶码相减。
      • 尾数运算:尾数进行原码乘法或除法。
      • 规格化:对结果进行规格化。
      • 舍入:对结果进行舍入。
      • 溢出判断:判断最终阶码是否溢出。