02 运算器和运算方法
数据表示
数据格式
- 纯小数
\[
0 \le |x| \le 1 - 2^{-n}
\]
- 纯整数
\[
0 \le |x| \le 2^{n} -1
\]
数的机器码表示
补码
0 的补码只有一种形式,而原码有两种。
取值范围: \(-2^n \le x \le 2^n -1\)
例题:已知 \([x]_补=\bold{1}10011011\),求 x。
解答:
\[
\begin{aligned}
x &= -1 \times 2^{8} + 1 \times 2^{7} + 0 \times 2^{6} + 0 \times 2^{5} + 1 \times 2^{4} + 1 \times 2^{3} \\
&\quad + 0 \times 2^{2} + 1 \times 2^{1} + 1 \times 2^{0} \\
&= -256 + 155 \\
&= -101
\end{aligned}
\]
浮点数的机器表示
IEEE 754 标准:S(1) + E(8) + M(23) 共 32 位。
例题 2.5:若浮点数 x 的 IEEE754 标准存储格式为\((41360000)_{16}\),求其浮点数的十进制数值。
解答:
- 求二进制:0 | 100 0001 0 | 011 0110 0000 0000 0000 0000
- 求指数:e = 阶码 — 127 = 1000 0010 — 0111 1111 = \((3)_{10}\)
- 求 \(1.M\):1.011011
- 最后 \(x=(-1)^s \times 1.M \times 2^e =+(1.011011)_2 \times 2^3 = +1011.011_2 = (11.375)_{10}\)
可以再看看教材 P41 页例题。
定点加减法运算
补码加法
看两道例题即可 P46,例题 2.13 展示了当运算溢出的结果。