0

使用 8 位寄存器和有符号幅度表示。我认为 BCD 中的 25 是 010 0101,但我的教科书上写的是 001 1001。有人可以解释一下吗?

4

1 回答 1

0

25 / 2 = 12r1(12 余 1)

12 / 2 = 6r0(6,余数为 0)

6 / 2 = 3r0(3 余数为 0)

3 / 2 = 1r1(1 余数为 0)

1 / 2 = 0r1(0,余数为 0)

所以 11001(在树上向后工作)是相当于 25 的二进制数。

另一种思考方式是使用 2 的幂:

(1*16) + (1*8) + (0*4) + (0*2) + (1*1) = 25

值得注意的是,就像以 10 为底一样,前导零不会改变数字的值。(00025 == 25) (0011001 == 11001)。

在您的情况下,前导零在那里,因为您需要填充一个 8 位寄存器(无论它们的值如何,都需要有 8 个二进制数字)。

于 2014-05-02T05:17:43.983 回答