数据的运算摘要
- 定点运算器
- 定点数的表示:
- 原码、反码、补码、移码。
- 通常采用补码进行运算,便于将减法转换为加法,且符号位与数值位一同参与运算。
- 定点加/减法运算:
- 补码加减法规则:[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 法”等。
- 溢出判断:判断最终阶码是否超出允许范围,进行溢出或下溢处理。
- 浮点乘/除法运算步骤:
- 阶码运算:乘法时阶码相加,除法时阶码相减。
- 尾数运算:尾数进行原码乘法或除法。
- 规格化:对结果进行规格化。
- 舍入:对结果进行舍入。
- 溢出判断:判断最终阶码是否溢出。