【问题标题】:Minimum bits required for two's complement number representation二进制补码表示所需的最小位数
【发布时间】:2013-08-08 20:40:50
【问题描述】:

我需要找出如何在二进制补码系统中以最小位数表示-1-3。我计算了答案1111,但答案似乎不正确。如果我能得到一些帮助,我将不胜感激。谢谢

【问题讨论】:

  • 我有答案,但答案不正确。是的,它的功课..
  • 听起来像是 cstheory.stackexchange.com 的工作
  • 对我来说 cstheory.stackexchange.com 听起来有点简单。

标签: twos-complement


【解决方案1】:

这是您可能已经熟悉的公式:N' = 2^n - N。 其中 n 是位数,N'-N 补码的十进制表示,N 是基数。 例如,short int x = -6 在转换为 unsigned short int 时将变为 N' = 2^8 - 6 = 250

现在,通过这个公式,您可以获得n = log(N+N')(以 2 为底的对数)。

编辑:

我更关注的是位数。现在我重新阅读了你的问题...... 让我给你一个答案: 您需要至少两位来表示 3,并且您需要额外一位来表示 signness,这意味着您至少需要 3 位来表示 -3。 1 也是如此。考虑到这一点,[011] = 3,取 1 的补码(反转位)=> [100] 并添加 1 => [101] = -3。 至于-1,你也这样做。 [01] = 1,反转位 => [10] => 加一 => [11] = -1。

就是这样,我想……

【讨论】:

    【解决方案2】:

    -1 可以用1 表示,-3 可以用101 (-4 + 1) 表示。

    111 等于十进制 -1 (-4 + 2 + 1)。

    【讨论】:

      猜你喜欢
      • 2012-11-26
      • 2021-12-21
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 2018-02-19
      • 2021-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多