我不确定我是否可以在这里问一个二进制问题,但是这里... 我们的期中考试有这个问题,但我们的教授没有提供正确的答案。它让我疯狂,决赛即将到来,所以填补这个空白可能是一个好主意。谢谢!
找到最小的二进制补码数,当添加到0101 0101
时会导致溢出。用二进制表达你的答案。
我的推理:
我通过将原始二进制文件转换为实际数字然后向其中添加一个来找到原始二进制文件0101 0101
的范围。然后我将比该范围多1的数字转换为8位二进制作为我的答案。但是,这只能让我获得3/6分。我不知道我还能做些什么。任何见解将不胜感激!
答案 0 :(得分:3)
原始二进制是一个正数(0符号位)。向其添加更改符号位的正数时会发生溢出。应该很容易看出使用二进制表示法的最小数字是什么:
没有溢出:
0101 0101
+ 0010 1010
---------
0111 1111
<强>溢出:强>
0101 0101
+ 0010 1011
---------
1000 0000
我不知道这是否是你的教授所期待的。 (您可以从1000 0000
中减去而不是将其视为模式。)
编辑由于您要求提供一个示例(意思是与上述内容不同),以下是减法的工作原理:
1000 0000 (the target overflow quantity)
- 0101 0101 (the original binary)
---------
0010 1011 (the smallest number that will overflow when added to original)
答案 1 :(得分:0)
这个数字是十进制的85,所以128-85是43