欢迎来到天天文库
浏览记录
ID:59204966
大小:690.00 KB
页数:38页
时间:2020-09-26
《第2章计算机中的数制和编码ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2.2.4补码的加减运算1.补码加法在计算机中,带符号数一般用补码表示,运算结果自然也是补码。其运算特点是:符号位和数值位一起参加运算,并且自动获得结果(包括符号位与数值位)。补码加法的运算规则为:即:两数补码的和等于两数和的补码。(2.2.5)例2.11已知[+51]补=00110011B,[+66]补=01000010B,[-51]补=11001101B,[-66]补=10111110B求[+66]补+[+51]补=?[+66]补+[-51]补=?[-66]补+[-51]补=?解:二进制(补码)加法十进制加法01000010[+66]补+66+)0011
2、0011[+51]补+)+5101110101[+117]补+117日常生活我们用十进制算计算机用二进制补码算对比结果是否正确二进制(补码)加法十进制加法01000010[+66]补+66+)11001101[-51]补+)-5100001111[+15]补+151自动丢失由于[+66]补+[+51]补=[(+66)+(+55)]补=01110101B结果为正,因此[(+66)+(+55)]原=[(+66)+(+55)]补=01110101B其真值为+117,计算结果正确。对比结果是否正确二进制(补码)加法十进制加法10111110[-66]补-66+)11
3、001101[-51]补+)-5110001011[-117]补-1171自动丢失由于[+66]补+[−51]补=[(+66)+(−55)]补=0000111B结果为正,因此[(+66)+(−55)]原=[(+66)+(−55)]补=00001111其真值为+15,计算结果正确。对比结果是否正确由于[-66]补+[-51]补=10001011B=[(-66)+(-55)]补结果为负,因此[(-66)+(-55)]原=[[(-66)+(-55)]补]补=11110101B其真值为-117,计算结果正确。可以看出,不论被加数、加数是正数还是负数,只要直接用它们的
4、补码直接相加,当结果不超出补码所表示的范围时,计算结果便是正确的补码形式。但当计算结果超出补码表示范围时,结果就不正确了,这种情况称为溢出。见211.asm演示211.asmCODESEGMENTASSUMECS:CODESTART:MOVAL,66ADDAL,51;(AL)=?MOVAL,66ADDAL,-51;(AL)=?MOVAL,-66ADDAL,-51;(AL)=?CODEENDSENDSTART2.补码减法补码减法的运算规则为:(2.2.6)例2.12已知[+51]补=00110011B,[+66]补=01000010B[−51]补=110011
5、01B,[−66]补=10111110B求[+66]补−[+51]补=?[-66]补--[-51]补=?解[+66]补-[+51]补=[+66]补+[-51]补[-66]补-[-51]补=[-66]补+[+51]补二进制(补码)加法十进制加法10111110[-66]补-66+)00110011[+51]补-)-5111110001[-15]补-15二进制(补码)加法十进制加法01000010[+66]补+66+)11001101[-51]补-)+5100001111[+15]补+151自动丢失对比结果是否正确对比结果是否正确可以看出,无论被减数、减数是正数
6、还是负数,上述补码减法的规则都是正确的。同样,由最高位向更高位的进位会自动丢失而不影响运算结果的正确性。计算机中带符号数用补码表示时有如下优点:①可以将减法运算变为加法运算,因此可使用同一个运算器实现加法和减法运算,简化了电路。②无符号数和带符号数的加法运算可以用同一个加法器实现,结果都是正确的。例如:无符号数带符号数11100001225[-31]补+)00001101+)13+)[+13]补11101110238[-18]补若两操作数为无符号数时,计算结果为无符号数11101110B,其真值为238,结果正确;若两操作数为补码形式,计算结果也为补码形式,
7、11101110B为–18的补码,结果也是正确的。2.2.5溢出及其判断方法1.进位与溢出所谓进位,是指运算结果的最高位向更高位的进位,用来判断无符号数运算结果是否超出了计算机所能表示的最大无符号数的范围。溢出是指带符号数的补码运算溢出,用来判断带符号数补码运算结果是否超出了补码所能表示的范围。例如,字长为n位的带符号数,它能表示的补码范围为-2n-1+2n-1-1,如果运算结果超出此范围,就叫补码溢出,简称溢出。2.溢出的判断方法判断溢出的方法很多,常见的有:①通过参加运算的两个数的符号及运算结果的符号进行判断。②单符号位法。该方法通过符号位和数值部分最
8、高位的进位状态来判断结果是否溢出。③双符号位法,又称
此文档下载收益归作者所有