Binary 使用有符号2'添加8位数字;补语

Binary 使用有符号2'添加8位数字;补语,binary,overflow,addition,signed,twos-complement,Binary,Overflow,Addition,Signed,Twos Complement,要么是对下面所写的内容有些混淆,要么是我的课本错了。 我在我的课本上看了一些例子,用2的补码加上8位有符号的二进制数字,遇到了这些例子。 我们需要查明是否发生溢流 示例1] 加上+75和-58 +75=01001011。。。(a) +58=00111010 -58 = 11000110 ... (b) [取2+58的补码] 现在加上(a)和(b)我们得到 01001011 +11000110 1] 0000001 教科书中写道,溢出发生时,箭头指向用方括号分隔的额外1。 这个例子是好的,从这

要么是对下面所写的内容有些混淆,要么是我的课本错了。 我在我的课本上看了一些例子,用2的补码加上8位有符号的二进制数字,遇到了这些例子。 我们需要查明是否发生溢流


示例1]

加上+75和-58

+75=01001011。。。(a)
+58=00111010
-58 = 11000110 ... (b) [取2+58的补码]

现在加上(a)和(b)我们得到

01001011
+11000110
1] 0000001

教科书中写道,溢出发生时,箭头指向用方括号分隔的额外1。 这个例子是好的,从这里我了解到,如果有和额外的1,那么我们有一个溢出

(问题1:我的理解正确吗?)


这个例子把我弄糊涂了

添加53和(-13)

53=00110101
-(13) =11110011

现在加上这两个,我们得到

00110101+11110011=1]00101000

然后他们写道:有符号位的进位和进位是1。所以没有溢出。丢弃进位和rest是所需的正结果

(主要问题是:尽管有这个溢出数字(额外的1),为什么他们说它没有溢出。上面句子中写的有符号位的进位和进位是什么。)



我做了很多谷歌搜索,但找不到一个很好的合理的解决方案,这一行他们谈论的,或者可能是在我眼前,但我不明白。请有人澄清一下。我看到的大多数例子(在堆栈溢出和其他站点上)都是关于4位的,这让我更加困惑。有人请帮助我澄清,谢谢。

只有当正确答案不能用给定的位数来解释时才发生溢出。需要一个额外的位来解释答案的正确性。请考虑下面的字节数加例:

+70英寸二进制文件01000110

+80英寸二进制01010000

新增:10010110

MSB中的1(最高有效位)表示答案为负,这是错误的。但是,如果我们将额外的第9位作为符号位(=0),则答案为010010110=150。此额外符号位的值等于MSB中位相加后的进位(在本例中为0)


参考文献:M. Morris Mano的计算机体系结构。

< P>溢出仅发生在使用给定位数的正确答案无法解释的情况下。需要额外的位来解释答案的正确性。请考虑下面的字节数加例:

+70英寸二进制文件01000110

+80英寸二进制01010000

新增:10010110

MSB中的1(最高有效位)表示答案为负,这是错误的。但是,如果我们将额外的第9位作为符号位(=0),则答案为010010110=150。此额外符号位的值等于MSB中位相加后的进位(在本例中为0)


参考:M.Morris Mano的计算机系统架构。

使用8位带符号2的补码表示法添加以下内容:

  • 25和40

  • 75和80


使用8位有符号2的补码表示法添加以下内容:

  • 25和40

  • 75和80


我将尝试通过示例来解决您的疑问,我们将使用带符号2的补码方法添加两个数字

但在此之前,让我告诉你发生溢流时的情况

基本上,当进位到符号位不等于进位到符号位时,会发生溢出


示例1:

Decimal Carry out Sign bit 2’s Complement -65 - 1 011 1111 -15 - 1 111 0001 --------------------------------------------- -80 1 1 011 0000 1's complement of 0110000 = 1001111 Adding Overflow digit 1 to 1001111 we will get our answer as 1010000. With signed bit we will get - 1 1010000 which is equal to -80 Decimal Carry out Sign bit 2’s Complement -65 - 1 011 1111 -75 - 1 011 0101 -------------------------------------------- -140 1 0 111 0100 十进制执行符号位2的补码 -65 - 1 011 1111 -15 - 1 111 0001 --------------------------------------------- -80 1 1 011 0000 011000的1的补码=1001111 将溢出数字1添加到1001111,我们将得到1010000的答案。 有符号位我们将得到-1010000,等于-80 进位到符号位=1

符号位的执行=1

因此,没有溢出


示例2:

Decimal Carry out Sign bit 2’s Complement -65 - 1 011 1111 -15 - 1 111 0001 --------------------------------------------- -80 1 1 011 0000 1's complement of 0110000 = 1001111 Adding Overflow digit 1 to 1001111 we will get our answer as 1010000. With signed bit we will get - 1 1010000 which is equal to -80 Decimal Carry out Sign bit 2’s Complement -65 - 1 011 1111 -75 - 1 011 0101 -------------------------------------------- -140 1 0 111 0100 十进制执行符号位2的补码 -65 - 1 011 1111 -75 - 1 011 0101 -------------------------------------------- -140 1 0 111 0100 进位到符号位=0

符号位的执行=1

因此,溢出


我希望,这一定已经消除了您对溢出和带符号2的补码二进制加法技术的疑虑。

我将尝试借助示例来解决您的疑问,我们将使用带符号2的补码方法来添加两个数字

但在此之前,让我告诉你发生溢流时的情况

基本上,当进位到符号位不等于进位到符号位时,会发生溢出


示例1:

Decimal Carry out Sign bit 2’s Complement -65 - 1 011 1111 -15 - 1 111 0001 --------------------------------------------- -80 1 1 011 0000 1's complement of 0110000 = 1001111 Adding Overflow digit 1 to 1001111 we will get our answer as 1010000. With signed bit we will get - 1 1010000 which is equal to -80 Decimal Carry out Sign bit 2’s Complement -65 - 1 011 1111 -75 - 1 011 0101 -------------------------------------------- -140 1 0 111 0100 十进制执行符号位2的补码 -65 - 1 011 1111 -15 - 1 111 0001 --------------------------------------------- -80 1 1 011 0000 011000的1的补码=1001111 将溢出数字1添加到1001111,我们将得到1010000的答案。 有符号位我们将得到-1010000,等于-80 进位到符号位=1

符号位的执行=1

因此,没有溢出


示例2:

Decimal Carry out Sign bit 2’s Complement -65 - 1 011 1111 -15 - 1 111 0001 --------------------------------------------- -80 1 1 011 0000 1's complement of 0110000 = 1001111 Adding Overflow digit 1 to 1001111 we will get our answer as 1010000. With signed bit we will get - 1 1010000 which is equal to -80 Decimal Carry out Sign bit 2’s Complement -65 - 1 011 1111 -75 - 1 011 0101 -------------------------------------------- -140 1 0 111 0100 十进制执行符号位2的补码 -65 - 1 011 1111 -75 - 1 011 0101 -------------------------------------------- -140 1 0 111 0100 进位到符号位=0

执行符号位=