【问题标题】:Why didn't the complement's formula work?为什么补码的公式不起作用?
【发布时间】:2015-01-23 19:38:03
【问题描述】:

我刚刚了解到,找到第一个补码的公式是

    -x = 2^n - x - 1

我已经设法将它应用于二进制案例:

     -00001100 (base 2) = 2^8 - 12 - 1 
                        = 243
                        = 11110011 (1s)

但是,当我尝试将相同的公式应用于以 5 为底的数字时,

     -1042 (base 4) = 5^4 - 1042 - 1
                    = 625 - 1042 - 1
                    = - 400 (which is not the answer)

有人可以帮我吗?谢谢

【问题讨论】:

  • 一方面,您使用 '1042' 作为十进制数和五进制数
  • 平行宇宙中的某个地方...我刚刚了解到直角三角形满足a^2 + b^2 = c^2。但是,当我尝试将相同的公式应用于立方体 a^3 + b^3 = c^3 时,它不适用于 a = 3、b = 4、c = 5。有人可以帮我吗?
  • 625 - 1042 - 1 = -418, 625 - 1024 - 1 = -400
  • (base 4) = 5^4 - 决定使用的基础。尝试使用该表示进行操作。
  • @EmmadKareem 这不是一个新问题,而是一个笑话。看我的回答。

标签: algorithm bit-manipulation formula twos-complement ones-complement


【解决方案1】:

你不能用 2 个不同的基数来计算任何公式,你必须使用它们的十进制表示(或你可以处理的其他表示)

我会在 12 月试一试:

1042 (base 5) = 1* 5^3 + 4* 5^1 + 2 = 125 + 20 + 2 = 147 dec
5^4 - 147 - 1 = 477 dec
477 = 3* 5^3 + 4* 5^2 + 2 = 3402 (base 5)

以 5 为基数:

5^4 - 1042 - 1 = 10000 - 1043 = 3402

【讨论】:

  • 你的计算是正确的,但是它们与一个的补码有什么关系呢?你知道以 5 为底的反码的定义吗?
  • @BartoszMarcinkowski 在基数 5 中没有 1 的补码。IMO 这可以称为 4 的补码。我以前从未使用过以 5 为底的数字,但我知道以 10 为底的 10 的补码(这是二进制 2 的补码的附属物)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-31
  • 2021-01-22
  • 2013-06-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多