计算机组成原理:2数据的表示和运算-学习笔记

2.1 数制与编码

进位计数法
  • 对于任意 r 进制数 (\(K_n K_{n-1} K_{n-2}…K_{0} K_{-1}…K_{-m}\)),其值等于

\begin{align}
\sum_{i=-m}^{n} K_i*r^i
\end{align}

  • 各种进制转换方式
    • 十转二,二转十
    • 二转八转十六,十六转八转二
    • 十转八,八转十
    • 通用方式
      • 整数部分除基取余
      • 余数部分乘基取整
各种码
  • BCD码
    • 8421码
    • 余3码:8421基础上加 \((0011)_2\)
    • 2421码
  • ASCII码
    • 仅0~126
  • 汉字的表示和编码
    • 输入编码
    • 汉字内码
    • 汉字字形码
    • 区位码:排列于 \((94)_{10}*(94)_{10}\) 矩阵,4位10进制数
    • 国标码:区位码转16进制后 + 2020H
    • 汉字内码:国标码 + 8080H
  • 校验码

2.2 定点数的表示和运算

小数点位置

  • 最高位之前:定点小数
  • 最低位之后:定点整数

原码

  • 首位表示符号,1为负

补码

  • 首位如果为整数部分第r位,则其权值为 \(-2^{r-1}\)
  • 算术移位
    • 将符号位和数值位一起右移并保持符号位不变等效于除以2
      • 非首位部分显然被除以2.首位由0变为00,或由1变为11,按定义,对应的值也刚好是除以2
      • 如果首位和次首位都为1,可以用相反操作进行乘2
  • 模4补码
  • 取反操作:符号位取反,数值位取反加1

反码

  • 负数时,表示为其相反数的按位取反
  • 任意x加自身的反码得到全1码

移码

  • 基于真值加一个偏置值 通常加 \(2^n\) 其中n为机器字长减一
  • 0表示唯一
  • 移码和补码的首位刚好相反
  • 移码全0时最小,对应真值 \(-2^n\)

转换关系

运算

  • 算术移位
    • 乘2或者除2
  • 逻辑移位
    • 视为无符号数移动
  • 循环移位
    • 可带上进位 CF 移位
  • 原码加减
    • 先判断符号位,相同则直接加,不相同则绝对值大的减绝对值小的
  • 补码加减
    • 直接加减,并丢弃溢出位
  • 符号扩展
  • 溢出判断
  • 乘法运算
    • 原码
    • 补码
  • 除法运算
    • 原码
    • 补码

数据存储

  • 大端方式
    • 起始地址放高位
  • 小端方式
    • 起始地址放地位
  • 边界对其

2.3 浮点数的表示与运算

表示

  • 格式
    • 阶符+阶码数值+数符+数值
  • 规格化
    • 左规、右规
  • IEEE 754标准
    • 数符+移码表示的阶码+原码表示的数值部分
    • 其中移码的偏置值为 \(2^{n-1} – 1\)
类型数符阶码尾数数值总位数偏置偏置
float1823327FH127
double11152643FFH1023
temp11564803FFFH16383

和定点相比较

  • 范围更广、有效位数低、运算复杂、溢出判断同时需要考虑阶和数

加减运算

  • 过程
    • 对阶
    • 尾数求和
    • 规格化
    • 舍入
    • 溢出判断

2.4 算数逻辑单元(ALU)

加法器

  • 串行
  • 并行
    • 分组并行进行
      • 组内并行,组间串行(单级先行进位)
      • 组内并行,组间并行(多级先行进位)
  • 每一位求和 与 进位的逻辑表达式

ALU功能和结构

  • 组合逻辑电路,能进行多种运算

Leave a Comment