N 余数到 2 的补码

问题描述 投票:0回答:2

有人可以解释一下如何做到这一点吗?这不是家庭作业。

有人可以向我解释一下如何做到这一点吗?

Show that if N is chosen to be equal to 2^(m-1) where m is the number of bits
in the representation, then an Excess N representation will be the same as a 2's
Complement representation but with the sign bit inverted. Hint - transform the
summation formula for Excess-N numbers to the summation formula for 2's Comp
numbers.

首先,如何将多余N个数的求和公式转换为2的补数的公式?其次,我究竟应该如何证明这一点?

assembly binary intel twos-complement
2个回答
0
投票
计算机中的数字存储为

m 位,其中包含 [0..(2^m)-1] 范围内的数字——正数(无符号)。因此,要表示负数,您需要以某种方式将负数编码到这个空间中。有很多种方法可以实现这一点,术语Sign-MagnitudeTwos-complementOnes-ComplementExcess-N 都指的是不同的实现方式。

Excess N 表示法意味着您通过将常数 N 添加到所有数字来处理负数,这样您就只有正数需要处理。所以0值代表-N,1值代表-N+1,等等。N值代表0。

现在,我不确定您指的是哪本书,但

求和公式通常指的是通过对一堆项求和来计算值的方法。在数字表示的上下文中,它通常为每个位分配一个“值”,这样设置位的值的总和就给出了编码的数字。当您对 Twos-complement 执行此操作时,您最终会得到一个公式,而当您对 Excess-N 执行此操作时,您最终会得到一个略有不同的公式,但您应该能够看到/显示以下等价性你引用的问题。


0
投票
我希望 MathJax 在 StackOverflow 中工作,但如果没有它,我将不得不努力解决这个问题。

N = λ

1( - 2^(L - 1)) + SUM(从 n=2, 到 n=L)[λn(2^(L - n)] (其中 n E Z)是N 的 2 的补扩展。

此处 λ

n E {0, 1}(位),其中 n 在 [1, L] 中; n E Z.

L = N 中的位长度。(问题有 L = m)。

N

max 因此是 SUM(从 n=2,到 n=L)[2^(L - n)]

N

max = - 2^(L - 1)) - 1(简化形式)

所以,这个问题是不正确的,因为如果位的长度是 L,你甚至不能用 2 的补码来表示 N = 2^(L - 1)。

我们可以为 N 选择一个更合适的值,比如 N = N

max

则 λ

n = { 0 for n = 1; [2, L] 中的 n 为 1 }; nEZ

因此,N 的 2 补码二进制表示为 (0,1,1,...1)

b,具有 L 位。

N = N

E - E,其中 NE 是 N 的 Excess-N 版本,E 是 Excess。

我们知道E = 2^(L - 1)。

过量-N 维基百科文章

N

E = SUM(从 n=1, 到 n=L)[αn(2^(L - n))] 是 NE 的 2 次方展开式。

因此:N

E = N + 2^(L - 1)

N

E = Nmax + 2^(L - 1)

N

E = - (2^(L - 1)) - 1) + 2^(L - 1)

N

E = SUM(从 n=2,到 n=L)[2^(L - n)] + 2^(L - 1)

N

E = SUM(从 n=1,到 n=L)[2^(L - n)]

接下来,我们代入N

E的展开式:

N

E = SUM(从 n=1,到 n=L)[2^(L - n)]

SUM(从 n=1, 到 n=L)[α

n(2^(L - n))] = SUM(从 n=1, 到 n=L)[2^(L - n)]

这意味着 [1, L] 中的 n α

n = 1; nEZ

因此,N 的 Excess-N 二进制表示为 (1,1,1,...1)

b,具有 L 位。

比较这些表示法,我们可以看到,简单地翻转一种表示法中的 MSB 就会产生另一种表示法。

© www.soinside.com 2019 - 2024. All rights reserved.