Skip to content

Commit

Permalink
update: 240305
Browse files Browse the repository at this point in the history
  • Loading branch information
V1CeVersaa committed Mar 5, 2024
1 parent d729349 commit 5e234a1
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions docs/Computer Science/System/CSAPP.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ $$S=\frac{1}{1-\alpha}.$$

无符号数的编码就是经典的二进制编码,假设一个无符号整数数据有$w$位,我们可以将位向量写作$\vec{x}$,也就是$[x_{w-1},x_{w-2},\cdots,x_0]$来表示向量的每一位。我们用一个函数$B2U_w$(是Binary to Unsigned的缩写)来表示二进制向无符号整数的转换:

$$B2U_w(\vec{x})\colonequals\sum_{i=0}^{w-1}x_i2^i.$$
$$B2U_w(\vec{x}) = \sum_{i=0}^{w-1}x_i2^i.$$

我们很容易可以得知:

Expand All @@ -78,7 +78,7 @@ $$B2U_w(\vec{x})\colonequals\sum_{i=0}^{w-1}x_i2^i.$$

最常见的有符号整数编码是**补码/Two's-complement**编码。在补码编码中,一个$w$位的有符号整数$\vec{x}$的值可以表示为:

$$B2T_w(\vec{x})\colonequals -x_{w-1}2^{w-1}+\sum_{i=0}^{w-2}x_i2^i.$$
$$B2T_w(\vec{x}) = -x_{w-1}2^{w-1}+\sum_{i=0}^{w-2}x_i2^i.$$

最高有效位也称为符号位,其权重为$-2^{w-1}$,其余位的权重和无符号整数编码一样。同样,我们可以得知:

Expand All @@ -100,11 +100,11 @@ $$B2T_w(\vec{x})\colonequals -x_{w-1}2^{w-1}+\sum_{i=0}^{w-2}x_i2^i.$$

- **反码/Ones'-complement**:除了最高位有效的权是$-(2^{w-1}-1)$,其余和补码是一样的:

$$B2O_w(\vec{x}) \colonequals -x_{w-1}(2^{w-1}-1)+\sum_{i=0}^{w-2}x_i2^i.$$
$$B2O_w(\vec{x}) = -x_{w-1}(2^{w-1}-1)+\sum_{i=0}^{w-2}x_i2^i.$$

- **原码/Sign-magnitude**:最高位是符号位,用来确定剩下的位应该取正权还是取负权,其余位表示数值的绝对值:

$$B2S_w(\vec{x}) \colonequals (-1)^{x_w-1}\cdot\left(\sum_{i=0}^{w-2}x_i2^i\right).$$
$$B2S_w(\vec{x}) = (-1)^{x_w-1}\cdot\left(\sum_{i=0}^{w-2}x_i2^i\right).$$

这两种编码方式都有统一的缺点:对于数字`0`,有两种完全不同的表示方法,并且这两种编码不能很好地支持算数运算,因而,我们现在开始使用更加方便的补码编码。

Expand Down

0 comments on commit 5e234a1

Please sign in to comment.