我知道答案是29但我不确定如何到达它。
通常我会把011101拿到100010的倒数并加1得到 100011。
这个值是35.如何回答29?
答案 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