我需要以下主题的一些建议:添加两个有符号/幅值和两个补码二进制数。我在纸上进行了计算并上传了图片。抱歉,如果我的照片偏斜(我不知道为什么上传会这样做)
添加两个有符号/幅值
+6 +(-6) 忽略进位1.。总和为4,且为错误。没有溢出,因为我们添加了两个带有不同符号指示符的数字0和1。
+4 +(+5) 和为-1,不正确。溢出是因为我们因为添加了两个带有相同符号指示符0的数字。
添加两个补码二进制数字
+6 +(-6) 忽略进位1。总和为0且正确。没有溢出,因为我们添加了两个带有不同符号指示符的数字0和1。
+4 +(+5) 总和是-7,不正确。溢出是因为我们因为添加了两个带有相同符号指示符0的数字。
通过示例,我是否正确理解二进制加法溢出和总和正确性?
答案 0 :(得分:0)
4.11.4。加减 加减法需要注意符号位。如果符号相同,我们只需将幅度添加为无符号数字,然后注意溢出。如果符号不同,则从较大的符号中减去较小的幅度,并保留较大的符号。
因此,对于符号大小,您遇到的第一个错误。
符号不同,因此您从较小的数字减去较大的数字。由于它们相同,所以选择什么都没关系。结果为0,它是正确的。 +0或-0。没关系,因为它们都代表同一件事。
您也弄错了第二个,因为对于总和+ 4 + 5,应保留符号+作为结果,然后加上幅度。
1 carry (ignore carry to the most sign bit)
0100 +4
0101 +5
--------
0001 +1
结果为+1,并且进位到最高有效位(即符号位)检测到溢出。
选中此项以获取更多信息http://pages.cs.wisc.edu/~smoler/x86text/lect.notes/arith.int.html
2的补语
您的答案是正确的:tada: