logo
导航

算术运算

算术运算

加法运算

二进制加法

二进制加法遵循以下规则:

  • 0 + 0 = 0
  • 0 + 1 = 1
  • 1 + 0 = 1
  • 1 + 1 = 10(进位 1)

半加器和全加器

  • 半加器:处理两个一位二进制数的加法
  • 全加器:处理两个一位二进制数加上来自低位的进位

多位加法器

  • 串行进位加法器:逐位计算,速度较慢
  • 并行进位加法器:同时计算所有位,速度快但电路复杂
  • 超前进位加法器:预先计算进位,平衡速度和复杂度

减法运算

补码表示

计算机中通常使用补码表示负数:

  • 原码:最高位表示符号,其余位表示数值
  • 反码:正数不变,负数各位取反
  • 补码:正数不变,负数反码加 1

补码加法

减法可以通过补码加法实现:

A - B = A + (-B)

其中(-B)是 B 的补码。

溢出检测

  • 符号位溢出:两个正数相加得到负数,或两个负数相加得到正数
  • 进位溢出:最高位有进位但符号位无变化

乘法运算

移位加法乘法

基本乘法算法:

  1. 将被乘数左移
  2. 根据乘数的每一位决定是否加上被乘数
  3. 累加得到结果

Booth 算法

改进的乘法算法:

  • 减少部分积的数量
  • 通过移位和加减操作实现
  • 适用于有符号数乘法

硬件乘法器

  • 阵列乘法器:并行计算所有部分积
  • 树形乘法器:使用树形结构减少延迟
  • 流水线乘法器:将乘法分解为多个阶段

除法运算

恢复余数除法

基本除法算法:

  1. 将被除数左移
  2. 尝试减去除数
  3. 如果结果为正,商为 1;否则恢复并商为 0
  4. 重复直到所有位处理完毕

不恢复余数除法

改进的除法算法:

  • 不恢复被减去的数
  • 通过调整后续操作补偿
  • 减少恢复操作,提高效率

硬件除法器

  • 阵列除法器:并行处理多位
  • 迭代除法器:通过多次迭代提高精度
  • 查表除法器:使用查找表加速计算

浮点运算

浮点数表示

IEEE 754 标准:

  • 单精度:32 位(1 位符号,8 位指数,23 位尾数)
  • 双精度:64 位(1 位符号,11 位指数,52 位尾数)

浮点加法

  1. 对阶:使两个数的指数相同
  2. 尾数相加:对齐后的尾数相加
  3. 规格化:调整结果到标准格式
  4. 舍入:根据舍入模式处理精度

浮点乘法

  1. 指数相加:两个指数的和
  2. 尾数相乘:两个尾数的乘积
  3. 规格化:调整结果到标准格式
  4. 舍入:根据舍入模式处理精度

运算优化

并行运算

  • SIMD 指令:单指令多数据
  • 向量运算:同时处理多个数据
  • 并行算法:多个运算单元协同工作

流水线技术

  • 运算流水线:将运算分解为多个阶段
  • 指令流水线:重叠执行多条指令
  • 超标量技术:同时发射多条指令

缓存优化

  • 数据局部性:利用时间和空间局部性
  • 预取技术:提前加载可能需要的数据
  • 写缓冲:减少写操作的延迟

性能指标

运算速度

  • MIPS:每秒百万条指令
  • FLOPS:每秒浮点运算次数
  • 延迟:单个运算的完成时间

精度控制

  • 舍入模式:向零、向无穷、向最近等
  • 精度损失:运算过程中的精度变化
  • 误差分析:累积误差的估计

实际应用

科学计算

  • 大规模矩阵运算
  • 数值积分和微分
  • 信号处理和图像处理

金融计算

  • 高精度数值计算
  • 风险评估和建模
  • 实时交易系统

图形处理

  • 3D 图形渲染
  • 物理模拟
  • 游戏引擎计算