【问题标题】:What is decimal value of the sum of the following 5-bit two's complement numbers?以下 5 位二进制补码之和的十进制值是多少?
【发布时间】:2014-10-22 04:59:01
【问题描述】:

谁能解释一下这个问题?

以下 5 位二进制补码之和的十进制值是多少? 10010+10101

【问题讨论】:

  • 问题只是要求您将这两个二进制数相加。
  • 10010b + 10101b = 100111b = 39。但问题是什么?为什么要添加这么多不相关的标签?​​
  • @Ilya:可能是-25。前导 1 在二进制补码中为负数。
  • @Thilo,感谢您指出这一点! (我没有注意到这个限制)

标签: sum decimal twos-complement


【解决方案1】:

通过二进制算术将两个补数相加。

10010 + 10101 =


00111

与普通数字一样,如果在加法时同时击中两个数字,则将数字移至下一个位置。

要解释二进制补码,您必须了解第一位表示值 2^0,第二位 2^1,第三位 2^2,第四位 2^3。这种模式自然地扩展到 32 位和 64 位数字。 5bit二进制补码的最后一位代表-2^4。

将这些值与我们得出的位数相乘:

-0*2^4 + 0*2^3 + 1*2^2 + 1 *2^1 + 1*2^0

这个值是 4 + 2 + 1 = 7。如果我们查看十进制值 10010,我们会看到它等于 -2^4 + 2^1 = -16 + 2 = -14。 10101 为 -11。

所以计算机说 (-11) + (-14) 的和是 7。这是因为溢出,我们忽略了最后一位应该有 1 进位到下一列的事实。给出一个有限的表示这是我们能做的最好的。

溢出的特点是一堆简洁的属性,因为我们的表示是一个阿贝尔群,一个数学结构。这超出了问题的范围,但您当然应该理解它们。只是谷歌溢出。

此外,大多数答案都将是简短的,因为这是谷歌可以解决的基本主题,而 StackOverflow 得到了足够多的问题。提问前请务必查看谷歌并搜索 StackOverflow!

【讨论】:

    【解决方案2】:
    10010=2^4+2^1=16+2=18
    10101=2^4+2^2+2^0=21
    22+18=39
    
    ^=power
    

    【讨论】:

    • 那些不是以'1'开头的负数吗?
    猜你喜欢
    • 2014-01-30
    • 1970-01-01
    • 2016-05-24
    • 1970-01-01
    • 2014-03-01
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多