大学美术作品展:汇编中溢出所谓的按次高和最高的进位来判断是怎么回事?可不可以用最详细的方法解释一下?

来源:百度文库 编辑:高考问答 时间:2024/05/03 09:18:59

首先,我们要明确一个概念:什么叫溢出。
溢出是指在有符号的算术运算中,两个同符号数相加时出现的超出所能表示范围的现象。
其次,我们要明确另外一个概念:有符号数在计算机中的表示方法---补码。
有符号数的补码表示可以用下列方法求得:
1)任何正数的补码等于它本身。
2)任何负数的补码等于对它的绝对值的二进制形式按位取反,并加1。
3)零的补码是零。
比如:13-1可以写成13+(-1)
13的补码是它本身:用二进制表示为(0000 1101)B
(-1)的补码是它本身按位取反再加1:
(1111 1110)B+(0000 0001)B=(1111 1111)B
结果得(0000 1101)B+(1111 1111)B=(1)(0000 1100)B
前面的(1)表示是进位,去掉不要,剩下的等于12,就是我们想要的结果。可以看出,用这个编码,计算机只要做加法就可以了。其实计算机最善长做加法的。嘿嘿!

上面的两个概念我们明确以后,我们可以举一反三,再举个例子,用255+32。显然,已经超出了8位二进制所能表示的范围。
255的补码为:(1111 1111)B
32的补码为: (0010 0000)B
(1111 1111)B+(0010 0000)B=(1)(0001 1111)B
结果的最高位进位是(1),次高位是(0),我们用这两位做异或运算,如果为真,则结果溢出;为假,则没有溢出。
至于为什么做异或,本人正在考虑中,可以加本人MSN:yaodekey@hotmail.com一同讨论,或QQ:286744884