LOADING

加载过慢请开启缓存 浏览器默认开启

计组学习笔记(2):运算方法与运算器II

原码乘法运算

部分积

每次提\(2^{-1}\),即右移1位:

原码除法运算

加减交替法

浮点数的表示方法

一个任意进制数\(N\)可以表示为:
\[ N = M \times R^E \]

其中:
* \(M\)表示尾数,是一个小数;
* \(E\)表示阶码/指数,是一个整数;
* \(R\)表示基数,一般为2,8,16;

尾数的有效数字位数决定了浮点数的表示精度;阶码的有效数字位数决定了浮点数的表示范围;

浮点数的规格化表示

对于基数为\(R\)的规格化浮点数,要求其尾数的绝对值范围:
\[ \frac{1}{R} \le |M| < 1 \]

对于原码表示的浮点数,即要求最高数值位为1;

IEEE 754浮点数标准

  • e,阶:用移码表示,即\(E = Exp - (2^{n - 1} - 1)\)
  • Frac,小数字段:
    • 规格化数表示:\(M = 1 + Frac\)
    • 非规格化数表示:\(M = Frac\)

特殊的浮点数表示

浮点数可表示的数值范围

浮点数的加减法

步骤

\[ x\pm y = (M_x 2^{E_x - E_y} \pm M_y)2^{E_y},E_x \le E_y \]

  1. 检查操作数是否为0;
  2. 对阶:小阶向大阶对齐;
  3. 用双符号位的尾数进行加减运算;
  4. 规格化:
    1. 如果双符号位出现01、10的非法值,则向右规格化直至合法;
    2. 检查是否符合规格化小数的要求,向左规格化直至合法;
  5. 舍入(可能再次规格化):向偶数舍入;