两个补充值为011101

时间:2013-06-23 02:45:15

标签: binary twos-complement

我知道答案是29但我不确定如何到达它。

通常我会把011101拿到100010的倒数并加1得到 100011。

这个值是35.如何回答29?

5 个答案:

答案 0 :(得分:1)

011101 is 29  //Binary to Decimal
100011 + 011101 = 000000  //100011 is inverse+1
100011 = -011101  
100011 = -29

没有'35',因为在两个赞美系统中,任何以'1'开头的数字都是负数。这意味着,假设6位,任何大于31的数字(011111)实际上都是负数。

答案 1 :(得分:1)

“两个补语”一词是ambiguous

  • 011101是十进制数29的二进制表示
  • 011101上执行二进制补码操作会产生100011(十进制-29,因为两个补码表示法使用最高有效位作为符号位)。

答案 2 :(得分:0)

100011是正确的,它的十进制等值确实是35。你怎么知道它应该是29?

答案 3 :(得分:0)

答案 35,而不是29。

invert(0b011101) + 0b1 = 0b100010 + 0b1 = 0b100011 = 35

问题是29的两个补码:

0b011101 = 29

答案 4 :(得分:0)

“逆+1”程序用于编码负数。

你知道这个数字是正数,因为高位为零,所以:

1*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0 = 16 + 8 + 4 + 0 + 1 = 29