本章首先讲述计算机中数据与文字的表示方法,然后讲述定点运算,定点运算器的组成,最后讲述浮点运算方法,浮点运算器的组成。
范围问题
纯小数范围: 0 ≤ ∣ x ∣ ≤ 1 − 2 n 0\le|x|\le1-2^n 0≤∣x∣≤1−2n
纯整数范围: 0 ≤ ∣ x ∣ ≤ 2 n − 1 0\le|x|\le2^n-1 0≤∣x∣≤2n−1
定点整数的补码: − 2 n ≤ [ x ] 移 ≤ 2 n − 1 -2^n\le[x]_移\le2^n-1 −2n≤[x]移≤2n−1
定点小数的补码: − 1 ≤ [ x ] 移 ≤ 1 − 2 − n -1\le[x]_移\le1-2^{-n} −1≤[x]移≤1−2−n
例如
当n为4时:
真值:-1111~+1111
补码:10001~01111(注意正数的补码不变)
⇒ \Rightarrow ⇒ 10000~01111 ⇒ \Rightarrow ⇒-16 ~15
原码的定点整数:
[ x ] 原 = { x , 2 n ⩾ x ⩾ 0 2 n − x = 2 n + ∣ x ∣ , 0 ⩾ x ⩾ − 2 n [x]_原=\begin{cases} x,& \text{$2^n$ $\geqslant$ $x$ $\geqslant$0 }\\ 2^n-x=2^n+|x|,& \text{0 $\geqslant$ $x$ $ \geqslant$ $-2^n$} \end{cases} [x]原={
x,2n−x=2n+∣x∣,2n ⩾ x ⩾0 0 ⩾ x ⩾ −2n
例如:
x = + 1001 x=+1001 x=+1001,则 [ x ] 原 = 01001 [x]_原=01001 [x]原=01001
x = − 1001 x=-1001 x=−1001,则 [ x ] 原 = 11001 [x]_原=11001 [x]原=11001
补码的表示方法
这里有一个有趣的说法:
我们可以把补码视作一个无头无尾的圆,可以正向走,可以反向走。
− 3 = + 9 ( m o d ) 12 -3=+9 (mod)12 −3=+9(mod)12
如何来理解这样的式子呢?
我们将其普遍化,令前一个数的绝对值为 x x