当前位置: 首页 > 知识库问答 >
问题:

溢出和进位标志

柴博
2023-03-14

我在教科书上读到...

加减法不能导致溢出。引用一下,

“如果一个数字为正数,另一个为负数,则加法后不会发生溢出,因为将正数与负数相加会产生幅值较小(…)的结果。”。

然而,通过经历一些问题,情况似乎并非如此,我想确认我计算的不是错误。

例如,这适用于4位加法减法器,其中M=1(这意味着用B减法),A=0101(5)和B=1010(10)。

通过取B=0110(-10)的2s补码并将数字相加,可以进行减法。

例如(5)(-10)

      0 1
+5      0101
-10     0110
-------------
result: 1011
results 2s: 0101 (-5)
C: 0 and V = 1.

仅仅通过执行这个问题就已经出现了几个问题。

  1. 尽管没有溢出(数字在范围内),但仍会设置溢出位
  2. 假设范围为-8到7,有符号整数和无符号整数不也会导致溢出,例如(-1 9)

例如

-1      1110
+9      1001
-------------
result: 1111
result 2s:    0001 (1)

C: 1 and V: 1

我注意到当C=0时没有溢出,当C=1时有溢出。

我读到两个无符号整数之间的溢出关系是V溢出标志。另一方面,两个有符号整数之间的溢出关系与C进位标志有关。这可能有关吗?

无符号整数和有符号整数的加法是否可能溢出?如果是这样,溢出的无符号整数和有符号整数的关系是什么(C或V标志)?

共有2个答案

季炯
2023-03-14

我认为爱德华多的回答很好,哈罗德的评论更简洁。你有4位。这代表

[ -(2**3) , (2**3 - 1) ]

或者,更简单地说,

[ -8, 7 ]

选择-10。但是,这在该范围内并不存在,因此大多数架构都会将其封装。包装会造成溢出。让我们将位字段扩展到8位。

00001010 = 10

现在我们否定它并添加一个

11110110

现在你可以删掉其中一些,因为它本质上是符号扩展的,但你必须存储符号位,

10110

所以你必须从5位开始,而不是4位。没有4位,你就会丢弃符号位,这就溢出了。

既然已经解决了,如果我们加上

00101 (+5)
10110 (-10)
-----
11011

现在符号位已设置,因此反转并添加1。

11011
00100 (inverted)
00001 (adding 1)
00101 (-5)

答案是-5,你做到了,没有溢出。

这里的要点是,要使正数溢出,您需要添加它。要使负数溢出,您必须从中减去。如果两个数字都有不同的符号(并且它们有效),它们必须适合在同一个空间中而不会溢出。

卢志业
2023-03-14

“溢出位”通常定义为添加或减去两个有符号的数字,当处理有符号的数字时,第一位是符号,所以对于4位加法器7是最大的整数可用,当您选择10时,您已经选择了一个大于加法器支持的数字,1010并不意味着10,而是-6,实际上,您从5中减去-6,这会导致溢出。

 类似资料:
  • 整个旗帜的事情让我很困惑。网络上的定义看起来很简单。对于这一切,我似乎找不到一个真正合适的解释。 根据它们的定义,-进位:表示无符号整数溢出-溢出:表示有符号整数溢出-零:由零产生的运算-符号:由负数产生的运算 那么下面的句子到底是怎么回事以下说明将设置符号标志:(这里的答案是252不是负数。那么为什么设置符号标志?) > 在8位寄存器中添加7Fh和05h设置溢出标志。(这里的答案是132。它不高

  • 问题内容: 我需要显示大于其父元素的子元素,但不删除overflow:hidden;。这可能吗?parent元素的 子元素一旦脱离父边界,就会被剥离。 (元素定义了其他的css,我只是为了清楚起见放置了样式属性) 问题答案: 这是完全不可能做到你想要什么都和父..相反,你可以引入额外的儿童并移动到这一点。 HTML: CSS:

  • 问题内容: 我们有两个DIV,一个嵌入另一个。如果外部DIV的位置不是绝对的,则内部DIV的位置绝对是不遵守外部DIV所隐藏的溢出的。 是否有机会使内部DIV服从外部DIV的隐藏溢出,而无需将外部DIV设置为绝对位置(因为这会破坏我们的完整布局)?相对于内部DIV的相对位置也不是一种选择,因为我们需要“增长”到表TD(exmple)。 还有其他选择吗? 问题答案: 制作外,以和内到。它应该为您工作

  • 我有固定位置的模态形式。 HTML: JSFiddle

  • 我使用onCreateOptionsMenu创建了一个溢出菜单,但该菜单几乎完全位于屏幕之外。我尝试过显式设置(如操作栏菜单显示屏幕中的建议),但这并没有解决我的问题。我也不想遵循使用旧主题的建议(如在ICS-Menu item text Cutoff?)。 XML是 我做错了什么?

  • 问题是当我将页面收缩到某个点时, 元素的顶部溢出,奇怪的是底部没有溢出。说清楚一点,我不想让这两个都溢出来。 这里有一个指向它的JSFiddle链接:https://jsfidle.net/maep468x/1 您将看到,当您运行它并将结果窗口缩小到大约350px时, 元素开始溢出。 我已经尝试从.main-content规则中删除我的line-height和font-size属性,但它仍然溢出。