计算机体系结构中补码的目的是什么?


补码用于数字计算机中,以方便减法运算和逻辑运算。每种基数为 r 的系统都有两种补码方法:r 补码和 (r - 1) 补码。

(r - 1) 补码

9 的补码

给定一个在基数 r 中具有 n 位数字的数 N,N 的 (rn - 1) 补码表示为 (rn- 1) - N。对于十进制数,r = 10 且 r - 1 = 9,因此 N 的 9 的补码为 (10n - 1) - N。

现在,10n 定义了一个包含一个 1 后跟 n 个 0 的数字。10n – 1 是由 n 个 9 定义的数字。例如,当 n = 4 时,我们有 104 = 10000 且 104 - 1 = 9999。因此,十进制数的 9 的补码是通过从 9 中减去每个数字得到的。例如,546700 的 9 的补码为 999999 - 546700 = 453299,12389 的 9 的补码为 99999 - 12389 = 87610。

1 的补码

对于二进制数,r = 2 且 r - 1 = 1,因此 N 的 1 的补码为 (2n - 1) - N。2n 由一个包含 1 后跟 n 个 0 的二进制数描述。2n - 1 是由 n 个 1 定义的二进制数。例如,当 n = 4 时,我们有 24 = (10000)2,且 24 - 1 = (1111)2。因此,二进制数的 1 的补码是通过从 1 中减去每个数字得到的。从 1 中减去二进制数字会导致位从 0 变为 1 或从 1 变为 0。因此,二进制数的 1 的补码是通过将 1 变为 0,将 0 变为 1 来构造的。例如,1011001 的 1 的补码为 0100110,0001111 的 1 的补码为 1110000。

八进制或十六进制数的 (r - 1) 补码分别通过从 7 或 F(十进制 15)中减去每个数字获得。

(r) 补码

10 的补码

基数 r 中 n 位数字数 N 的 r 补码表示为,当 N 不等于 0 时为 rn - N,当 N = 0 时为 0。与 (r - 1) 补码相比,我们看到 r 补码是通过在 (r - 1) 补码中添加 1 得到的,因为 rn - N = [(rn - 1) - N] + 1。

因此,十进制数 2389 的 10 的补码为 7610 + 1 = 7611,它是通过在 9 的补码值中添加 1 得到的。二进制数 101100 的 2 的补码为 010011 + 1 = 010100,它是通过在 1 的补码值中添加 1 得到的。

2 的补码

2 的补码可以通过保持所有最低位的 0 和第一个 1 不变,然后将所有其他更高位的 1 变为 0,将 0 变为 1 来生成。1101100 的 2 的补码为 0010100,它是通过保持两个最低位的 0 和第一个 1 不变,然后将其他四个最高位的 1 变为 0,将 0 变为 1 来得到的。

更新时间: 2021 年 7 月 24 日

8K+ 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告